我似乎无法弄清楚如何使用MSAL获取访问令牌。我花了时间阅读源代码和Microsoft文档,但无济于事。我想使用PublicClientApplication获取令牌。即使使用ConfidentialClientApplication运行QuickStart的概念证明,我似乎也只能获得ID_Token而不是访问令牌。最终,我试图构建桌面/移动的应用程序,并希望能够使用MSAL的id令牌索赔和访问令牌访问API。还值得一提的是,我想实现这一使用AAD B2C谢谢!
vhmi4jdf1#
要获得访问权限,请使用PublicClientApplication类的acquire_token_silent或acquire_token_interactive方法。下面是一个例子,用你自己的变量替换所需的变量。
PublicClientApplication
acquire_token_silent
acquire_token_interactive
import msal app = msal.PublicClientApplication( "your_client_id", authority="https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/B2C_1_signup_signin_policy", client_credential=None ) scopes = ["https://yourtenant.onmicrosoft.com/api/read"] result = app.acquire_token_interactive(scopes=scopes) print(result["access_token"])
dddzy1tm2#
我在我的环境中复制并得到了如下预期结果,并遵循Microsoft-Document:
from msal import ConfidentialClientApplication cid = "53f3ed37d4aeac" csecret = "AFK8MY-weud6cqP7jsvAJIojaq-" tid = "72f981db47" auth = f"https://login.microsoftonline.com/{tid}" app = ConfidentialClientApplication( client_id=cid, client_credential=csecret, authority=auth ) s = "https://graph.microsoft.com/.default" result = app.acquire_token_for_client(scopes=s) a = result.get("access_token") print(a)
输出:
这里csecret是客户端机密cid是客户端IDtid是租户ID
csecret
cid
tid
2条答案
按热度按时间vhmi4jdf1#
要获得访问权限,请使用
PublicClientApplication
类的acquire_token_silent
或acquire_token_interactive
方法。下面是一个例子,用你自己的变量替换所需的变量。
dddzy1tm2#
我在我的环境中复制并得到了如下预期结果,并遵循Microsoft-Document:
输出:
这里
csecret
是客户端机密cid
是客户端IDtid
是租户ID