استفاده از Authentication SDK .NET Autodesk Platform Services (APS)

مقدمه
Autodesk Platform Services (APS) که قبلا به نام Forge شناخته می شد، API های قدرتمندی را ارائه می دهد که توسعه دهندگان را قادر می سازد ابزارهای مبتنی بر ابر Autodesk را در برنامه های خود ادغام کنند. چه در حال ساخت راه حل هایی برای تجسم، همکاری یا مدیریت داده باشید، احراز هویت دروازه ای برای باز کردن قابلیت های APS است.
APS Authentication SDK برای دات نت فرآیند پیاده سازی دسترسی ایمن به این سرویس ها را ساده می کند. این پیچیدگیهای OAuth 2.0 را خلاصه میکند و به توسعهدهندگان این امکان را میدهد تا به جای مدیریت جزئیات احراز هویت، بر ساخت ویژگیهای قوی تمرکز کنند. با استفاده از این SDK، می توانید به طور یکپارچه کاربران را احراز هویت کنید، نشانه های دسترسی به دست آورید، و جلسات امن را برای برنامه خود مدیریت کنید.
در این پست وبلاگ، شما را در راهاندازی و استفاده از APS Authentication SDK برای داتنت راهنمایی میکنیم که شامل موارد زیر است:
- نحوه نصب و پیکربندی SDK
- تنظیم اعتبار برنامه APS خود در پورتال توسعه دهنده Autodesk.
- احراز هویت کاربران با استفاده از روشهای کارآمد SDK.
- مدیریت توکن های دسترسی و پیاده سازی گردش کار ایمن.
چه یک توسعه دهنده باتجربه دات نت باشید و چه در APS تازه کار باشید، این راهنما به شما کمک می کند تا به سرعت احراز هویت را شروع کنید و Autodesk Platform Services را در برنامه خود ادغام کنید. بیایید شیرجه بزنیم!
SDK را نصب و پیکربندی کنید
Nuget.org بهترین مکانی است که به شما امکان می دهد به کتابخانه بسته کلی منتشر شده از Autodesk Platform Services.NET نگاه کنید، امروز ما فقط روی Autodesk.Authentication تمرکز می کنیم.
یک برنامه ایجاد کنید
قبل از اینکه یک برنامه بتواند از APS API استفاده کند، باید آن برنامه را ثبت کنید. سپس APS یک Client ID و یک Client Secret به برنامه اختصاص می دهد. شناسه مشتری به طور منحصر به فرد برنامه را شناسایی می کند. Client Secret شبیه رمز عبور است. هنگام دریافت رمز دسترسی، از آن برای تأیید اعتبار شناسه مشتری خود استفاده می کنید.
این آموزش را میتوانید با جزئیات در «ایجاد یک برنامه» مشاهده کنید
متغیر محیطی را تنظیم کنید
اول از همه، شما باید ویرایش را باز کنید Environment Variable
از جستجو
احراز هویت
OAuth 2 پا
using Autodesk.SDKManager;
using Autodesk.Authentication.Model;
using Autodesk.Authentication;
string? client_id = System.Environment.GetEnvironmentVariable("APS_CLIENT_ID");
string? client_secret = System.Environment.GetEnvironmentVariable("APS_CLIENT_SECRET");
SDKManager sdkManager = SdkManagerBuilder
.Create() // Creates SDK Manager Builder itself.
.Build();
var _authClient = new AuthenticationClient(sdkManager);
TwoLeggedToken twoLeggedToken = await _authClient.GetTwoLeggedTokenAsync(client_id, client_secret,
new List<Scopes>() { Scopes.DataRead, Scopes.BucketRead });
احراز هویت 3-پایه OAuth
گردش کار 3-Legged OAuth برای احراز هویت کاربران و امکان دسترسی ایمن به داده های Autodesk آنها استفاده می شود. این رویکرد شامل رضایت کاربر است و به یک autorization_code و یک redirect_uri نیاز دارد. هنگامی که کاربر درخواست برنامه شما را تأیید کرد، یک authorization_code برگردانده می شود که می تواند با یک نشانه دسترسی مبادله شود.
این به ویژه هنگام ساخت برنامههایی که نیاز به تعامل با دادههای خصوصی کاربر در سرویسهای Autodesk دارند، مانند BIM 360 یا Fusion 360 مفید است.
برخی از مراحل عبارتند از:
- برنامه خود را مانند آموزش در بالا ثبت کنید.
- ایجاد URL مجوز: از SDK برای ساخت URL مجوز استفاده کنید که در آن کاربران رضایت می دهند.
string url = _authClient.Authorize(client_id, ResponseType.Code, redirectUri: redirect_uri,
new List<Scopes>() { Scopes.DataRead, Scopes.BucketRead });
- کد مجوز تبادل برای توکن دسترسی: هنگامی که کاربر رضایت داد، با یک autorization_code به redirect_uri هدایت می شود. از این کد برای درخواست رمز دسترسی استفاده کنید.
در زیر یک مثال کامل وجود دارد که جریان احراز هویت 3-پایه را نشان می دهد:
ThreeLeggedToken threeLeggedToken =
await _authClient.GetThreeLeggedTokenAsync(client_id, client_secret, authorization_code, redirect_uri);
string threeLeggedToken_accesstoken = threeLeggedToken.AccessToken;
Assert.IsNotNull(threeLeggedToken_accesstoken);
Refresh Token
Refresh Token با استفاده از نشانه refresh ارائه شده در درخواست، یک توکن دسترسی 3 پایه جدید را برمی گرداند.
ThreeLeggedToken newToken = await _authClient.RefreshTokenAsync("refreshToken", client_id, client_secret);
Assert.IsNotNull(newToken.AccessToken);
فهرست کلیدهای عمومی را در قالب JWKS (مجموعه کلیدهای وب JSON) بازیابی می کند. یک کلید عمومی برای تأیید امضای نامتقارن JWT یک نشانه دسترسی OAuth 2.0 توسط کاربر نهایی مجاز در هر دو زمینه دو پا و سه پایه استفاده می شود. از لیست کلیدهایی که به پاسخ بازگردانده شده است، کلید مورد استفاده برای اعتبارسنجی یک نشانه داده شده را با استفاده از پارامتر kid نشانه (شناسه کلید) شناسایی کنید.
OidcSpec oidcSpec = await _authClient.GetOidcSpecAsync();
Assert.IsNotNull(oidcSpec);
دریافت اطلاعات کاربر
اطلاعات اولیه را برای کاربر تأیید شده معین واکشی می کند. فقط از نشانه های دسترسی 3 پا پشتیبانی می کند.
UserInfo userInfo = await _authClient.GetUserInfoAsync(threeLeggedTokenAccesstoken);
Revoke Token
یک نشانه دسترسی یا نشانه رفرش را می گیرد و آن را باطل می کند. هنگامی که توکن باطل می شود، غیر فعال می شود و هیچ پاسخ بدنی را بر نمی گرداند.
یک مشتری فقط می تواند توکن های خود را باطل کند.
HttpResponseMessage response = await _authClient.RevokeAsync(token, client_id, client_secret);
محدودیت
- برخی از APIها برای BIM 360 محدودیت دارند
- آخرین نسخه در زمان نوشتن پست تحت NET8 است، بنابراین اگر از دات نت فریم ورک استفاده می کنید، این خبر بدی برای شما است.
مرجع