使用Python验证由Azure Active Directory B2C签发的JWT。
项目描述
azure-ad-verify-token
使用Python验证由Azure Active Directory B2C签发的JWT 🐍。
Validation steps this library makes:
1. Accepts an Azure AD B2C JWT.
2. Extracts `kid` from unverified headers.
3. Finds `kid` within Azure JWKS.
4. Obtains RSA key from JWK.
5. Calls `jwt.decode` with nessary parameters, which inturn validates:
- Signature
- Expiration
- Audience
- Issuer
- Key
- Algorithm
许可协议
本作品受创用CC Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议许可。
对于商业用途许可,请联系我们[联系方式]。
安装
pip install azure-ad-verify-token
用法
首先,您需要获取您的 azure_ad_app_id
,azure_ad_issuer
和 azure_ad_jwks_uri
。以下步骤将展示如何获取这些值。
-
对于应用ID。登录到 Azure门户,导航到Azure AD B2C,点击“应用程序”部分,您的应用ID应列在列表中。
-
对于发行者和JWKS URI
在“用户流程”下,记下您的名称,这将在之后需要。
接下来,在Azure AD B2C中,在“应用程序”部分。
点击“端点”。
复制带有标签“OpenID Connect配置端点(v2)”的端点
它看起来可能像这样
https://exampletenant.b2clogin.com/exampletenant.onmicrosoft.com/<policy-name>/v2.0/.well-known/openid-configuration
现在将 <policy-name>
替换为之前您的用户流程名称
https://exampletenant.b2clogin.com/exampletenant.onmicrosoft.com/B2C_1_app_sign_in/v2.0/.well-known/openid-configuration
现在在您的网络浏览器中访问该URL。
您应该会收到一个JSON响应,记下'issuer'和'jwks_uri'键的值。
现在您有了这些值,您可以继续验证由Azure生成的JWT令牌。
from azure_ad_verify_token import verify_jwt
azure_ad_app_id = 'b74cd13f-8f79-4c98-b748-7789ecb1111d5'
azure_ad_issuer = 'https://exampletenant.b2clogin.com/0867afa-24e7-40e9-9d27-74bb598zzzzc/v2.0/'
azure_ad_jwks_uri = 'https://exampletenant.b2clogin.com/exampletenant.onmicrosoft.com/B2C_1_app_sign_in/discovery/v2.0/keys'
payload = verify_jwt(
token='<AZURE_JWT_TO_VERIFY_HERE>',
valid_audiences=[azure_ad_app_id],
issuer=azure_ad_issuer,
jwks_uri=azure_ad_jwks_uri,
verify=True,
)
print(payload)
{'aud': 'b74cd13f-8f79-4c98-b748-7789ecb1111d5',
'auth_time': 1591800638,
'emails': ['bob@example.com'],
'exp': 1591804238,
'family_name': 'Exp Admin',
'given_name': 'Richard',
'iat': 1591800638,
'iss': 'https://exampletenant.b2clogin.com/90867afa-24e7-40e9-9d27-74bb598zzzzc/v2.0/',
'nbf': 1591800638,
'sub': 'e07bbc53-b812-4572-9edc-4b5d4ac88447',
'tfp': 'B2C_1_app_sign_in',
'ver': '1.0'}
如果出现问题,以下异常之一将被引发
# If the token is found to be invalid.
azure_ad_verify_token.InvalidAuthorizationToken
# Base exception, raised if the checks which call the Azure server recieve an unhappy response.
azure_ad_verify_token.AzureVerifyTokenError
版本历史
0.4.0 (2022-12-29)
- 为
verify_jwt
函数添加了可选的kwargs。
0.3.0 (2022-11-03)
- 为
verify_jwt
函数添加了可选的'选项'参数。
0.2.1 (2021-12-23)
- 放宽了允许的依赖关系版本。
0.2.0 (2021-10-19)
- 将可选参数
verify
添加到verify_jwt
函数中。
0.1.3 (2021-03-11)
- 允许更广泛的加密依赖版本。
0.1.2 (2020-06-30)
- 更正了所需的依赖版本范围。
0.1.1 (2020-06-29)
- 文档更新。
0.1.0 (2020-06-29)
- 首次发布。
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
哈希值 for azure_ad_verify_token-0.4.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b2c92646433e91aaf123240d3b3d59133a56c910766a4c434dfd617c0e85f3f |
|
MD5 | 20f1a30d998d4eee49c7af418160fcc3 |
|
BLAKE2b-256 | 1f1642acc7900e87c42095d226bb99fa030a79a6f13d539522bd795d0405c122 |