Last updated:
0 purchases
flutter microsoft authentication
Getting Started #
import 'package:flutter_microsoft_authentication/flutter_microsoft_authentication.dart';
...
FlutterMicrosoftAuthentication fma = FlutterMicrosoftAuthentication(
kClientID: "<client-id>",
kAuthority: "https://login.microsoftonline.com/organizations",
kScopes: ["User.Read", "User.ReadBasic.All"],
androidConfigAssetPath: "assets/auth_config.json" // Android MSAL Config file
);
// Sign in interactively
String authToken = await this.fma.acquireTokenInteractively;
// Sign in silently
String authToken = await this.fma.acquireTokenSilently;
// Sign out
await this.fma.signOut;
// Android load account username
await this.fma.loadAccount;
copied to clipboard
Flutter #
Import the Flutter Microsoft Authentication package into your flutter application by adding it to the list of dependencies in your pubsec.yaml file.
dependencies:
flutter_microsoft_authentication: ^0.1.0
copied to clipboard
Configuring MSAL for Android #
Getting Started
Library
API Reference
Support
Register your app
Create App Registration in Azure Portal
In Authentication, add Android platform and fill in your bundle id
Make note of the MSAL Configuration
Add BrowserTabActivity with RedirectUri to Android Manifest.xml
<activity android:name="com.microsoft.identity.client.BrowserTabActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="[HOST]"
android:path="/[Signature Hash]"
android:scheme="msauth" />
</intent-filter>
</activity>
copied to clipboard
Create Msal Configuration JSON file
{
"client_id": "<client id>",
"authorization_user_agent": "DEFAULT",
"redirect_uri": "<redirect uri>",
"account_mode": "SINGLE",
"broker_redirect_uri_registered": true,
"shared_device_mode_supported": true,
"authorities": [
{
"type": "<type>",
"audience": {
"type": "<type>",
"tenant_id": "<tenant id>"
}
}
]
}
copied to clipboard
Add android MSAL config file to pubspec.yaml assets
assets
- assets/auth_config.json
copied to clipboard
Configuring MSAL for iOS #
Library:
https://github.com/AzureAD/microsoft-authentication-library-for-objc
Register your app
Create App Registration in Azure Portal
In Authentication, add iOS platform and fill in your bundle id
Make note of the MSAL Configuration
Add Keychain Sharing capability
In Xcode, under your applications Signing and Capabilities, add Keychain Sharing
Keychain Group should be com.microsoft.adalcache
Completely fine to have multiple Keychain Groups
This allows MSAL to use the keychain to share Microsoft Authentication sessions
Set up URL Schemes
Add the following CFBundleURLTypes to your Info.plist file.
Remember to replace the bundle id.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>msauth.[BUNDLE_ID]</string>
</array>
</dict>
</array>
copied to clipboard
Allow MSAL to use Microsoft Authenticator if it is installed
Add the following LSApplicationQueriesSchemes to your Info.plist file.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
copied to clipboard
Handle the redirect callback
Import MSAL
...
import MSAL
...
copied to clipboard
Within your AppDelegate.swift file add the following method
override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
copied to clipboard
Ensure that the minimum target is set to iOS 11
In Xcode, under General > Deployment info > Set the target to be no less than iOS 11
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.