OpenID Connectと 5.3.0を含む小規模な概念実証の実装に取り組んでいます。WSO2 Identity Server上のOpenID Connectディスカバリと発行者の不一致
クライアント側では、発見メカニズムを動作させるために、oic
ライブラリを使用してPythonを使用しています。私はoic
documentationに基づいて、次のコードを実行している:
from oic.oic import Client
oic_client = Client(verify_ssl=False)
uid = "[email protected]"
issuer = oic_client.discover(uid)
provider_info = oic_client.provider_config(issuer)
これは、次のエラーが発生:
oic.exception.IssuerMismatch: ' https://172.22.0.2:443/oauth2/oidcdiscovery ' != ' https://172.22.0.2:443/oauth2/token '
ここでの問題は、デフォルトの設定で、discover()
ステップが返すということですissuer
の値はhttps://172.22.0.2:443/oauth2/oidcdiscovery
ですが、その後のprovider_config()
のステップでは、発行者の値がhttps://172.22.0.2:443/oauth2/token
の文書が返されます。
oic
ライブラリがOpenID Connect Discovery specification状態は、プロバイダのメタデータ(強調鉱山)で提示issuer
値については、次のよう、エラーとしてこの不一致を報告して正しいと思わ:私の質問、そう
REQUIRED. URL using the
https
scheme with no query or fragment component that the OP asserts as its Issuer Identifier. If Issuer discovery is supported (see Section 2), this value MUST be identical to the issuer value returned by WebFinger. This also MUST be identical to theiss
Claim value in ID Tokens issued from this Issuer.
以下れる:
- は、私は(少なくともデフォルトの設定で)WSO2アイデンティティServerは、少なくとも限り発見はconcerneあるとして、OpenIDの接続仕様に準拠して動作しないという結論に修正アムd?
- 仕様に準拠するようにWSO2 Identity Serverを構成できますか。私は
OIDCDiscoveryEPUrl
とIDTokenIssuerID
のさまざまな組み合わせをidentity.xml
ファイルに指定しようとしましたが、これまでのところ運がありません。今の
、oic
ソースコードを読んだ後、私は、発行者の不一致を無視するには、以下の回避策を使用しています:
oic_client.allow["issuer_mismatch"] = True
私はでしょう、しかし、多くはで解決策を見つけることを好みますWSO2 Identity Serverは仕様に従って動作するように作られています。