You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity项目中通过Microsoft Graph登录接入Azure服务?

Unity接入Microsoft Graph实现Azure身份认证落地指南

可用的适配开发包

  • 首选微软官方的Azure Identity for Unity包,是专门适配Unity runtime的身份认证库,支持.NET Standard 2.0,兼容Unity 2020.3及以上版本,内置MSAL(微软身份验证库)的Unity适配层,不需要自行迁移桌面版C#的MSAL代码
  • 如果面向移动端/WebGL平台开发,可以选用Unity官方Azure插件库中的Azure Active Directory Authentication模块,已经完成各平台原生权限适配,iOS的ASWebAuthenticationSession、安卓的Custom Tabs都不需要自行封装

现有桌面C#代码迁移核心注意事项

你已经拥有可用的桌面端C#示例,迁移时重点规避以下问题即可:

  • 不要直接使用桌面版的InteractiveBrowserCredential,Unity runtime不支持默认系统浏览器回调绑定,要替换成Unity适配版的UnityInteractiveBrowserCredential,回调地址统一使用http://localhost或者Unity专属的自定义协议头,注意和Azure端配置的重定向URI保持一致
  • 线程适配:桌面C#示例的异步await上下文多为控制台/WinUI线程,Unity的主线程仅能在生命周期函数内访问,所有Graph调用的异步结果需要通过UnityMainThreadDispatcher抛回主线程后,再处理UI或游戏逻辑
  • 依赖冲突处理:如果项目中已经引入Newtonsoft.Json,需要把Azure Identity包自带的Newtonsoft.Json引用排除,改用Unity官方提供的com.unity.nuget.newtonsoft-json包,避免版本冲突报错

最小可运行实现流程

已完成Azure端配置的前提下,仅需要修改以下几步即可跑通基础登录流程

  • 导入适配的Azure Identity for Unity包后,先在Player Settings中将API兼容级别调整为*.NET Standard 2.1*,开启Allow 'unsafe' code权限(部分加密逻辑需要)
  • 身份凭证初始化参考代码:
using Azure.Identity.Unity;
using Microsoft.Graph;

// 挂载到场景常驻的MonoBehaviour上
private GraphServiceClient _graphClient;

void Start()
{
    var credential = new UnityInteractiveBrowserCredential(new UnityInteractiveBrowserCredentialOptions
    {
        ClientId = "替换为Azure端注册的客户端ID",
        TenantId = "替换为你的租户ID",
        RedirectUri = new Uri("替换为Azure端配置的重定向地址")
    });
    _graphClient = new GraphServiceClient(credential, new[] {"User.Read"});
}

// 绑定到登录按钮的点击事件
public async void OnLoginClicked()
{
    try
    {
        // 请求用户信息完成身份校验
        var user = await _graphClient.Me.GetAsync();
        // 实际使用时可将结果抛回主线程处理,比如显示用户名、写入本地缓存
        UnityEngine.Debug.Log($"登录成功:{user.DisplayName}");
    }
    catch (AuthenticationFailedException ex)
    {
        UnityEngine.Debug.LogError($"登录失败:{ex.Message}");
    }
}
  • 打包前对应平台做权限配置:安卓端添加INTERNET权限,iOS端在info.plist中添加重定向协议白名单,WebGL需要在Azure端配置对应跨域CORS规则

内容的提问来源于stack exchange,提问作者Jarno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:24:04