Objective-C 的 MSAL 认证提供程序
此客户端库是候选版本,并且仍在预览状态 - 请继续提供反馈,因为我们继续迭代以实现受支持的库生产版本。
此库提供了 MSAuthenticationProvider 的实现,可用于启动 Microsoft Graph SDK for ObjC 的开发。
注意:此库目前仅支持 iOS 平台。MacOS 支持将在未来版本中提供。
安装
使用 CocoaPods
您可以使用 CocoaPods 来保持与最新版本的同步。在 Podfile 中包含以下行
pod 'MSGraphMSALAuthProvider'
使用 Carthage
您也可以选择使用 Carthage 进行包管理。
-
使用网站下载或Homebrew工具在您的Mac上安装Carthage,方法为:
brew install carthage
。 -
您必须在GitHub上为此项目创建一个
Cartfile
文件,并在其中列出MSGraphMSALAuthProvider库。
github "microsoftgraph/msgraph-sdk-objc-auth" "tags/<latest_release_tag>"
-
运行
carthage update
命令。这将将依赖项检索到Carthage/Checkouts
文件夹中,然后构建库。 -
在目标应用程序的“通用”设置选项卡中,“链接的框架和库”部分,将
Carthage/Build
文件夹中的MSGraphMSALAuthProvider.framework
拖放到此处。 -
在目标应用程序的“构建阶段”设置选项卡中,点击“+”图标,选择“新建Run Script阶段”。创建一个Run Script,在下面的脚本区域指定您的shell(例如:
/bin/sh
),并添加以下内容
/usr/local/bin/carthage copy-frameworks
并在“输入文件”下添加您要使用的框架的路径,例如
$(SRCROOT)/Carthage/Build/iOS/MSGraphMSALAuthProvider.framework
此脚本解决了由通用二进制文件触发的App Store提交错误,并确保在存档时复制必要的位码相关文件和dSYMs。
将调试信息复制到生成的产品目录后,Xcode将能够在您停止在断点时符号化堆栈跟踪。这将使您能够通过调试器逐步执行第三方代码。
当您将应用程序存档以提交给App Store或TestFlight时,Xcode还会将这些文件复制到应用程序的.xcarchive
包的dSYMs子目录中。
先决条件
此库有两个依赖项,各自有不同的用途
-
MSAL 此依赖项已添加以处理所有与认证相关的场景。
-
MSGraphClientSDK 此依赖项已添加,以便从MSGraphClientSDK中选择MSAuthenticationProvider协议,从而使MSGraphClientSDK能与此库通信并获取所需的令牌。
因此,为了使用此库,您还必须在您的项目中添加上述两个框架。
如何使用
假设您已按照上述步骤操作,并添加了所需的框架或.pods,那么您的项目现在拥有了所需的所有内容。
因此,您现在需要遵循以下步骤
- 根据这里提供的说明,创建一个
MSALPublicClientApplication
类的实例:MSAL。请确保您遵循MSAL的readme中提到的其他步骤来正确创建此实例。它可能看起来像下面这样
NSError *error = nil;
MSALPublicClientApplication *application =
[[MSALPublicClientApplication alloc] initWithClientId:@"<your-client-id-here>"
error:&error];
- 创建一个实例
MSALAuthenticationProviderOptions
如下
MSALAuthenticationProviderOptions *authProviderOptions= [[MSALAuthenticationProviderOptions alloc] initWithScopes:<array-of-scopes-for-which-you-need-access-token>];
- 采用以下方式使用
MSALPublicClientApplication
和之前步骤中创建的MSALAuthenticationProviderOptions
实例创建一个MSALAuthenticationProvider
实例
MSALAuthenticationProvider *authProvider = [[MSALAuthenticationProvider alloc] initWithPublicClientApplication:publicClientApplication andOptions:authProviderOptions];
现在您拥有了一个遵循MSAuthenticationProvider协议的实例,并配置了一个MSALPublicClientApplication实例来处理认证场景。
- 现在您可以使用此 authenticationProvider 与 MSGraphClientSDK 配合,向微软 Graph 服务器进行认证网络调用。请访问 如何使用 MSGraphClientSDK 了解如何使用它。
到目前为止,所有设置都已正常运行。