Azure Active Directory B2Cで認証中に取得したIDトークンの署名を確認するのに問題があります。Azure Active Directoryで署名付きIDトークンを検証するB2C
私はこの命令のセットで探しています: は[https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-reference-tokens/#token-validation] [AzureのADのB2Cプレビュー:トークン参照>トークンの検証]
だから、私は署名を検証しようとする異なるのPython 3つのパッケージをしようとしていますすべてがIDトークンであるJWTと、署名を検証するための公開鍵である「鍵」または「秘密」を必要とするようです。
明確にすることが、AzureのActive DirectoryのB2CのIDトークンは、RS256を使用して署名されています
{'alg': 'RS256'} // Found in header of ID token
私は、キーを取得するには、このリンクを使用しています:
https://login.microsoftonline.com/<b2c_directory>.onmicrosoft.com/discovery/v2.0/keys?p=b2c_1_sign_in
このリンクは、JSON文字列を返します。 "kid"、 "use"、 "kty"、 "n"、 "e"
「n」と「e」のキーは一般に公開されていますキーを確認するために必要なキー署名。私は個別にまたは連結した(n + eとe + n)の両方を試みましたが、その署名を検証することはできません。
私はPyJWTを使用していますが、OpenIDを使用して認証する方法を知っている人がいれば、署名を正常に検証する限り他のPython 3パッケージを使用しても構いません。
"e"は指数であり、 "n"は係数です。 IDトークンの署名を検証するのに適した公開鍵を生成するためにそれらをどのように組み合わせるかは、誰でも知っていますか? –
ここでは、load_rsa_pub_key()について見てみましょう。 https://github.com/jpadilla/pyjwt/blob/c5ee34e86bc42bef60ef6e701df569c2c86a5d5d/tests/keys/__init__.py公開鍵を扱う方法については、いくつかのアイデアがあります。 –