Active Directory是一种身份验证和授权服务,它支持多种验证流和协议,包括授权码流和PKCE(Proof Key for Code Exchange)。
下面是一个使用授权码流和PKCE的示例代码:
const msalConfig = {
auth: {
clientId: 'YOUR_CLIENT_ID',
authority: 'https://login.microsoftonline.com/YOUR_TENANT_ID',
redirectUri: 'http://localhost:3000',
},
};
const request = {
scopes: ['openid', 'profile', 'user.read'],
};
const pca = new msal.PublicClientApplication(msalConfig);
function signIn() {
pca.loginPopup(request)
.then(response => {
console.log('Access token:', response.accessToken);
console.log('ID token:', response.idToken);
})
.catch(error => {
console.error(error);
});
}
在上面的示例中,msalConfig
对象包含了应用程序的配置信息,包括客户端ID、登录服务的URL和重定向URI。request
对象定义了要请求的权限范围。
pca
对象是PublicClientApplication
类的实例,它负责与Active Directory进行交互。signIn
函数使用loginPopup
方法以弹出窗口的方式进行登录,并获取访问令牌和身份令牌。
需要注意的是,要使用授权码流和PKCE,你需要在应用程序的注册表中将验证配置为“Web”类型,并启用PKCE。
总结起来,Active Directory是支持授权码流和PKCE的,你可以使用示例代码中的方法实现相关功能。