Flutter Azure 身份验证插件azure_identity的使用
Flutter Azure 身份验证插件 azure_identity
的使用
简介
该包是用于 Dart 的简化版 @azure/identity
。Azure Identity 提供了通过 Microsoft Entra ID 身份进行令牌身份验证的机制。由于支持不同的身份验证机制,它可以在本地与部署在 Azure 上的服务进行身份验证,也可以用来对部署在 Azure 上的 Dart 服务进行身份验证。
微软提供了不同架构的实现,但目前没有为 Dart 提供实现。此包旨在成为构建类似且功能等效解决方案的起点。
早期版本的此包通过使用一个 NodeJS 脚手架调用 DefaultAzureCredential()
来实现。NodeJS 脚手架被交叉编译成二进制文件并通过 shell 环境执行。虽然这使得该包无法在 pub.dev
上发布,但它提供了一个非常灵活的初始解决方案。该版本的包仍然可以在 bridged-implementation
分支中找到。
当前代码是纯 Dart 代码,并支持以下凭证:
- 管理身份 2017 API 版本
- 管理身份 2019 API 版本
- Azure CLI 凭证
- 代理 Azure CLI 凭证(自定义添加,以使本地运行的 Docker 容器能够使用 Azure Identity)
- 链式凭证
- 默认凭证(管理身份 2017、管理身份 2019 和 Azure CLI 的链式凭证)
使用示例
以下是使用 azure_identity
插件进行身份验证的完整示例:
import 'package:azure_identity/azure_identity.dart';
Future<void> main() async {
// 创建 DefaultAzureCredential 实例
final defaultAzureCredential = DefaultAzureCredential(
logger: print, // 设置日志输出
);
// 初始化凭证管理器
final credentialManager = CredentialManager(
credential: defaultAzureCredential,
options: GetTokenOptions(
scopes: ['https://myserver.fhir.azurehealthcareapis.com/'], // 指定作用域
),
);
// 获取访问令牌
final token = await credentialManager.getAccessToken();
// 打印令牌
print(token?.token);
}
更多关于Flutter Azure 身份验证插件azure_identity的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Azure 身份验证插件azure_identity的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
azure_identity
是 Azure SDK for Dart 中的一个包,用于在 Flutter 应用程序中处理 Azure 身份验证。它提供了与 Azure Active Directory (Azure AD) 集成的方式,允许应用程序使用 OAuth 2.0 和 OpenID Connect 等协议进行身份验证和授权。
以下是如何在 Flutter 应用程序中使用 azure_identity
插件进行身份验证的基本步骤:
1. 添加依赖项
首先,在 pubspec.yaml
文件中添加 azure_identity
和 azure_core
依赖项:
dependencies:
flutter:
sdk: flutter
azure_identity: ^1.0.0
azure_core: ^1.0.0
然后运行 flutter pub get
以安装依赖项。
2. 配置 Azure AD 应用
在 Azure 门户中创建一个 Azure AD 应用程序,并配置重定向 URI 以匹配你的 Flutter 应用程序。你需要获取以下信息:
- 客户端 ID (Client ID): 你的 Azure AD 应用的应用程序 ID。
- 租户 ID (Tenant ID): 你的 Azure AD 租户的 ID。
- 重定向 URI (Redirect URI): 你的应用程序的重定向 URI,通常类似于
https://login.microsoftonline.com/common/oauth2/nativeclient
。
3. 实现身份验证
在你的 Flutter 应用程序中,使用 azure_identity
插件进行身份验证。以下是一个简单的示例:
import 'package:azure_identity/azure_identity.dart';
import 'package:azure_core/azure_core.dart';
void main() async {
// 初始化 Azure Identity
final credential = InteractiveBrowserCredential(
clientId: 'YOUR_CLIENT_ID',
tenantId: 'YOUR_TENANT_ID',
redirectUri: 'https://login.microsoftonline.com/common/oauth2/nativeclient',
);
// 获取访问令牌
try {
final token = await credential.getToken(AzureTokenScope(['https://graph.microsoft.com/.default']));
print('Access Token: ${token.token}');
} catch (e) {
print('Error: $e');
}
}
4. 使用访问令牌
一旦你获得了访问令牌,你可以使用它来调用受保护的 Azure 服务,例如 Microsoft Graph API。
import 'package:http/http.dart' as http;
void callMicrosoftGraph(String accessToken) async {
final response = await http.get(
Uri.parse('https://graph.microsoft.com/v1.0/me'),
headers: {
'Authorization': 'Bearer $accessToken',
},
);
if (response.statusCode == 200) {
print('Response: ${response.body}');
} else {
print('Error: ${response.statusCode}');
}
}