Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Bem-vindo! Esta provavelmente não é a página que você estava esperando. Enquanto trabalhamos em uma correção, este link deve levá-lo ao artigo certo:
Pedimos desculpas pelo inconveniente e agradecemos a sua paciência enquanto trabalhamos para resolver este problema.
Neste guia de início rápido, deve baixar e executar um exemplo de código que demonstra como uma aplicação nativa iOS ou macOS pode autenticar utilizadores e obter um token de acesso para aceder à API do Microsoft Graph.
O início rápido aplica-se a aplicações iOS e macOS. Algumas etapas são necessárias apenas para aplicativos iOS e serão indicadas como tal.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- XCode 10+
- iOS 10+
- macOS 10.12+
Como funciona a amostra
Passo 1: Configurar a aplicação
Para que o exemplo de código para este início rápido funcione, adicione um URI de redirecionamento compatível com o broker de autenticação.
Seu aplicativo está configurado com estes atributos:
Etapa 2: Baixe o projeto de exemplo
Etapa 3: Instalar dependências
- Extraia o arquivo zip.
- Em uma janela de terminal, navegue até a pasta com o exemplo de código baixado e execute
pod installpara instalar a biblioteca MSAL mais recente.
Etapa 4: seu aplicativo está configurado e pronto para ser executado
Configuramos seu projeto com valores das propriedades do seu aplicativo e ele está pronto para ser executado.
Observação
Enter_the_Supported_Account_Info_Here
Se estiver a criar uma aplicação para nuvens nacionais do Microsoft Entra, substitua a linha que começa com 'let kGraphEndpoint' e 'let kAuthority' por pontos de extremidade corretos. Para acesso global, use valores padrão:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"Outros endpoints estão documentados aqui. Por exemplo, para executar o início rápido com o Microsoft Entra Alemanha, use o seguinte:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"Abra as configurações do projeto. Na seção Identidade, insira o Bundle Identifier que tenha inserido no portal.
Clique com o botão direito Info.plist e selecione Abrir como>Código-Fonte.
Sob o nó raiz do dicionário, substitua
Enter_the_bundle_Id_Herepelo Bundle Id que utilizou no portal. Observe o prefixomsauth.na cadeia de caracteres.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>Crie e execute o aplicativo!
Mais informações
Leia estas seções para saber mais sobre este início rápido.
Obtenha MSAL
MSAL (MSAL.framework) é a biblioteca usada para autenticar utilizadores e solicitar tokens utilizados para aceder a uma API protegida pela plataforma de identidade da Microsoft. Você pode adicionar MSAL ao seu aplicativo usando o seguinte processo:
$ vi Podfile
Adicione o seguinte a este podfile (com o destino do seu projeto):
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Execute o comando de instalação do CocoaPods:
pod install
Inicializar MSAL
Você pode adicionar a referência para MSAL adicionando o seguinte código:
import MSAL
Em seguida, inicialize o MSAL usando o seguinte código:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Onde: Descrição clientIdO ID da aplicação registada no portal.azure.com authorityA plataforma de identidade da Microsoft. Na maioria dos casos, será https://login.microsoftonline.com/common>redirectUriO URI de redirecionamento do aplicativo. Você pode passar 'nil' para usar o valor padrão ou seu URI de redirecionamento personalizado.
Apenas para iOS, requisitos adicionais de aplicativos
A sua aplicação também deve ter o seguinte no seu AppDelegate. Isso permite que o SDK do MSAL gerencie a resposta de token do aplicativo intermediário de autenticação quando a autenticação é feita.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Observação
No iOS 13+, se adotar UISceneDelegate em vez de UIApplicationDelegate, coloque esse código no callback scene:openURLContexts: (Consulte a documentação da Apple).
Se suportar tanto o UISceneDelegate como o UIApplicationDelegate para compatibilidade com versões mais antigas do iOS, o callback do MSAL deve ser colocado em ambos os lugares.
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let urlContext = URLContexts.first else {
return
}
let url = urlContext.url
let sourceApp = urlContext.options.sourceApplication
MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApp)
}
Por fim, o seu aplicativo deve ter uma entrada LSApplicationQueriesSchemes no arquivoInfo.plist do, ao lado do CFBundleURLTypes. A amostra vem com isso incluído.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Iniciar sessão dos utilizadores & para solicitar tokens
MSAL tem dois métodos usados para adquirir tokens: acquireToken e acquireTokenSilent.
acquireToken: Obtenha um token interativamente
Algumas situações exigem que os usuários interajam com a plataforma de identidade da Microsoft. Nesses casos, o usuário final pode ser solicitado a selecionar sua conta, inserir suas credenciais ou consentir com as permissões do seu aplicativo. Por exemplo
- A primeira vez que os usuários entram no aplicativo
- Se um utilizador redefinir a palavra-passe, terá de introduzir as suas credenciais
- Quando seu aplicativo está solicitando acesso a um recurso pela primeira vez
- Quando MFA ou outras políticas de Acesso Condicional são necessárias
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Onde: Descrição scopesContém os escopos que estão sendo solicitados (ou seja, [ "user.read" ]para Microsoft Graph ou[ "<Application ID URL>/scope" ]para APIs da Web personalizadas (api://<Application ID>/access_as_user))
acquireTokenSilent: Obtenha um token de acesso silenciosamente
Os aplicativos não devem exigir que seus usuários entrem sempre que solicitarem um token. Se o usuário já tiver entrado, esse método permitirá que os aplicativos solicitem tokens silenciosamente.
self.applicationContext!.getCurrentAccount(with: nil) { (currentAccount, previousAccount, error) in
guard let account = currentAccount else {
return
}
let silentParams = MSALSilentTokenParameters(scopes: self.kScopes, account: account)
self.applicationContext!.acquireTokenSilent(with: silentParams) { (result, error) in /* Add your handling logic */}
}
Onde: Descrição scopesContém os escopos que estão sendo solicitados (ou seja, [ "user.read" ]para o Microsoft Graph ou[ "<Application ID URL>/scope" ]para APIs da Web personalizadas (api://<Application ID>/access_as_user)accountA conta para a qual um token está sendo solicitado. Esta introdução rápida é sobre uma aplicação de conta única. Se você quiser criar um aplicativo com várias contas, precisará definir a lógica para identificar qual conta usar para solicitações de token usando accountsFromDeviceForParameters:completionBlock:e passando oaccountIdentifiercorreto
Ajuda e suporte
Se precisar de ajuda, quiser comunicar um problema ou quiser saber mais sobre as suas opções de suporte, consulte Ajuda e suporte para programadores.
Próximos passos
Vá para o tutorial passo a passo no qual você cria um aplicativo iOS ou macOS que obtém um token de acesso da plataforma de identidade da Microsoft e o usa para chamar a API do Microsoft Graph.