Я создал сервер OpenLiberty с конфигурацией поставщика openid connect. Сервер. xml извлечение:
<httpEndpoint host="example.net" httpPort="80" httpsPort="9443" id="defaultHttpEndpoint" /> <oauth-roles> <authenticated> <special-subject type="ALL_AUTHENTICATED_USERS" /> </authenticated> </oauth-roles> <openidConnectProvider id="OP" oauthProviderRef="Oauth" signatureAlgorithm="RS256" keyStoreRef="defaultKeyStore" keyAliasName="default" issuerIdentifier="https://example.net/oidc/endpoint/OP"> <scopeToClaimMap mail="mail" profile="name, given_name, carLicense, preferredLanguage" /> <claimToUserRegistryMap given_name="givenName" name="sn" mail="mail" preferredLanguage="preferredLanguage" carLicense="carLicense" /> </openidConnectProvider> <oauthProvider accessTokenLifetime="300s" id="Oauth" httpsRequired="false" customLoginURL="https://example.net/oidc/login.jsp"> <localStore> </localStore> </oauthProvider>
После запуска сервера, когда я пытаюсь получить доступ к discoveryendpoint-url: https://example.net/oidc/endpoint/OP/.well-known/openid-configuration
Ответ:
{"introspection_endpoint":"http://example.net/oidc/endpoint/OP/introspect", "coverage_map_endpoint":"http://example.net/oidc/endpoint/OP/coverage_map", : : : }
В то время как в localhost: https://localhost: 9443 / oidc / конечная точка / OP / .well-known / openid-configuration Я получаю
{"introspection_endpoint":"https://localhost:9443/oidc/endpoint/OP/introspect", "coverage_map_endpoint":"https://localhost:9443/oidc/endpoint/OP/coverage_map", : : }
у кого-либо есть идеи о том, почему я не получаю URL-адреса конечных точек на основе https из примера. net?
Вы не прослушиваете порт 443, поэтому этот URL может быть ошибочным: https://example.net/oidc/endpoint/OP/.well-known/openid-configuration, так как для этого потребуется прослушивание на 443. Или, возможно, вы проходите через какой-то прокси, который пересылает Свобода на http.
При таком доступе через http, http://example.net/oidc/endpoint/OP/.well-known/openid-configuration
, который будет возвращать конечные точки http, поскольку ваша конфигурация имеет httpsRequired = false. Вы можете установить значение true, чтобы запретить http-связь.