Ale*_*dre 7 java jwt azure-active-directory
这真是一场噩梦。我在使用 jwt.io 验证 Azure 访问令牌签名时遇到问题。不管我做什么,答案总是无效的签名。
\n有人可以尝试帮忙解决这个问题吗?
\n我的步骤:
\njwt.io
."https://login.microsoftonline.com/<TENANT_ID>/v2.0/.well-known/openid-configuration"
"https://login.microsofto\xe2\x80\xa6f143/discovery/v2.0/keys"
"https://login.microsofto\xe2\x80\xa6f143/discovery/v2.0/keys"
.----- 布局-1 ----
\n-----开始公钥-----\nMIIDBTCCAe2gAwIBAgIQQiR8gZNKuYpH6cP+KIE5ijANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDEyJhY2NvdW50cy5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0MB4XDTIwMDgyODAwMDA WMFoXDTI1MDgyODAwMDAwMFowLTErMCkGA1UEAxMiYWNjb3VudHMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMkymupuRhTpZc+6CBxQpL0SaAb+8CzLiiDy x2xRoecjojvKN2pKKjIX9cejMSDRoWaOnZCK4VZVX1iYRCWT1WkHb8r1ZpSGa7oXG89zxjKjwG46tiamwdZjJ7Mhh8fqLz9ApucY/LICPMJuu6d56LKs6hb4OpjylTvsNUAa+bHg1NgMFNg0fPCxdr9 N2Y4J+Jhrz3VDl4oU0KDZX/pyRXblzA8kYGWm50dh5WB4WoB8MtW3lltVrRGj8/IgTf9GxpBsO9OWgwVByZHU7ctZs7AmUbq/59Ipql7vSM6EsoquXdMiq0QOCZAPitwzHkTKrmeULz0/RHnuBGXxS/e 8wX0CAwEAAaMhMB8wHQYDVR0OBBYEFGcWXwaqmO25Blh2kHHAFrM/AS2CMA0GCSqGSIb3DQEBCwUAA4IBAQDFnKQ98CBnvVd4OhZP0KpaKbyDv93PGukE1ifWilFlWhvDde2mMv/ysBCWAR8AGSb1pAW/ZaJl MvqSN/+dXihcHzLEfKbCPw4/Mf2ikq4gqigt5t6hcTOSxL8wpe8OKkbNCMcU0cGpX5NJoqhJBt9SjoD3VPq7qRmDHX4h4nniKUMI7awI94iGtX/vlHnAMU4 +8y6sfRQDGiCIWPSyypIWfEA6/O+SsEQ7vZ/b4mXlghUmxL+o2emsCI1e9PORvm5yc9Y/htN3Ju0x6ElHnih7MJT6/YUMISuyob9/mbw8Vf49M7H2t3AE5QIYcjqTwWJcwMlq5i9XfW2QLGH 7K5i8\n-----结束公钥-----
\n但结果总是一样的。签名无效。
\n在我的应用程序中,我使用这个 URls。
\nRequest Azure Code Auth\nhttps://login.microsoftonline.com/<Tenant_Id>/oauth2/v2.0/authorize?\nclient_id=xxxxxx12312xxxxxxxx\n&response_type=code\n&redirect_uri=http://localhost:8443/<AppName>/secure/aad\n&response_mode=query\n&scope=openid+profile+offline_access\n&state=12345\n&prompt=login\n\n---- response ---\nlocalhost:8443/msal4jsample/secure/aad?\ncode=0.AAAAe7KHdX9Z7oIAA\n&state=12345\n&session_state=716c6fa7-8b51-4025-98ef-489c3b25ab3d#\n\n
Run Code Online (Sandbox Code Playgroud)\n请求 Azure 令牌
\n邮寄法
\nhttps://login.microsoftonline.com/common/oauth2/v2.0/token?\ngrant_type=authorization_code\n&code=<Received from above azure code auth request>\n&client_id=<Application_Id Registered in Azure>\n&client_secret=<Secret Key>\n&scope=openid profile email User.Read\n&redirect_uri=http://localhost:8443/<MyApp>/secure/aad\n\n\n---- Response ----\n\n{\n "token_type": "Bearer",\n "scope": "openid profile User.Read email",\n "expires_in": 3599,\n "ext_expires_in": 3599,\n "access_token": "X1YmQ",\n "refresh_token": "PC6YMqqLpvm",\n "id_token": "Y86JentfTUzBQoiUzav3pAu3GIG3OhslQ"\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n为什么当我尝试检查www.jwt.io中的 "refresh_token": "PC6YMqqLpvm" 时签名无效。
\n拜托,你能告诉我我做错了什么吗?我是否需要指示 Azure 签署访问令牌?
\n注意:我已使用本教程检查访问令牌的签名。\n https://blogs.aaddevsup.xyz/2019/03/using-jwt-io-to-verify-the-signature-of-a -jwt-令牌/
\n亲切的问候,\n马里奥·罗德里格斯
\n您正在请求范围参数指定的 MS Graph API 的访问令牌:scope=openid profile email User.Read
。User.Read 是 MS Graph API 范围。
这些令牌很特殊,您不应该验证它们。无论如何,验证其他 API 的令牌都不是您的应用程序的工作。刷新令牌的类似之处在于您的应用程序无法验证它们。它们仅对身份提供者有意义。
您应该验证的唯一令牌是受众 (aud) 是应用程序的客户端 ID 或应用程序 ID URI 的令牌。
归档时间: |
|
查看次数: |
3652 次 |
最近记录: |