您可能想要检查开源github库进行身份验证:https://github.com/MSOpenTech/azure-activedirectory-library-for-ios。我目前是主要贡献者,所以请随时向我提出关于图书馆的进一步问题。自述文件将为您提供有关如何进行身份验证并开始使用所提供的访问令牌的想法。 以下是获取访问令牌的示例代码。请记住,访问令牌是内部缓存的,因此您只需在每次需要时调用acquireTokenWithResource,该库就会负责认证(如果需要,向用户请求凭据),并利用OAuth 2.0协议上的刷新令牌。
ADAuthenticationError *error;
authContext = [ADAuthenticationContext authenticationContextWithAuthority:authority
error:&error];
NSURL *redirectUri = [NSURL URLWithString:redirectUriString];
[authContext acquireTokenWithResource:resourceId
clientId:clientId
redirectUri:redirectUri
completionBlock:^(ADAuthenticationResult *result) {
if (AD_SUCCEEDED != result.status){
// display error on the screen
[self showError:result.error.errorDetails];
}
else{
//Use result.accessToken to access any services.
}
}];
鲍里斯,有没有什么办法通过传递用户名和密码到权威机构来获取令牌?我宁愿有我自己的登录屏幕,而不是使用网络视图。谢谢 – mike
是的,这是一个常见的问题。我担心上面提到的ADAL库不支持这个,尽管协议的确如此。我们已经在Github上提交了一个功能请求来添加这个支持。由于ADAL.iOS全部是开源的,您现在可以简单地分叉代码并在您的副本中实现密码授权。它不应该那么难,因为代码已经完成了所有协议的工作。 –
非常感谢回复。我会考虑实施这个 – mike