Search English articles

3 नवंबर 2025 ·

C# और Visual Studio Code के साथ OAuth 2.0 इस्तेमाल करने की आधुनिक गाइड

अंग्रेज़ी लेख का अनुवाद। अंग्रेज़ी में मूल लेख

C# और Visual Studio Code के साथ OAuth 2.0

कई साल पहले मैंने OAuth की बुनियादी बातें (अंग्रेज़ी) समझाने वाला एक लेख लिखा था। वह उपयोगी था, लेकिन अब काफ़ी पुराना हो गया है। पिछले 14 वर्षों में बहुत कुछ बदल गया है! API को सुरक्षित रखने और अनुप्रयोगों को अधिकृत पहुँच देने के लिए OAuth 2.0 एक प्रचलित मानक बन गया है।

मेरे पुराने लेख में SoundCloud का उदाहरण और पुरानी लाइब्रेरी इस्तेमाल की गई थीं। इस नई गाइड में हम Visual Studio Code, आधुनिक लाइब्रेरी और अच्छे विकास तरीकों के साथ C# में OAuth 2.0 लागू करेंगे।

OAuth 2.0 का लोगो

चाहे आप कंसोल ऐप बना रहे हों, वेब API विकसित कर रहे हों या Google और Microsoft Graph जैसी सेवाओं को जोड़ रहे हों, यह गाइड एक साफ़ और सरल कार्यान्वयन के साथ शुरुआत करने में आपकी मदद करेगी।


शुरू करने से पहले

आगे बढ़ने से पहले, आपके पास ये चीज़ें होनी चाहिए:

आइए शुरू करें!


चरण 1: नया कंसोल ऐप बनाएँ

टर्मिनल खोलें और ये कमांड चलाएँ:

dotnet new console -n OAuthDemo
cd OAuthDemo

चरण 2: ज़रूरी पैकेज इंस्टॉल करें

OAuth के चरणों को संभालने के लिए हम Microsoft.Identity.Client का उपयोग करेंगे:

dotnet add package Microsoft.Identity.Client
dotnet add package Microsoft.Extensions.Configuration

चरण 3: OAuth की सेटिंग कॉन्फ़िगर करें

अपने क्रेडेंशियल रखने के लिए appsettings.json नाम की फ़ाइल बनाएँ:

{
  "OAuth": {
    "ClientId": "your-client-id",
    "TenantId": "your-tenant-id",
    "Authority": "https://login.microsoftonline.com/your-tenant-id",
    "Scopes": [ "https://graph.microsoft.com/.default" ],
    "ClientSecret": "your-client-secret"
  }
}
tenant-id क्या है? यह आपके Azure Active Directory (AAD) टेनेंट का विशिष्ट पहचानकर्ता (GUID) है। यह Azure पोर्टल में Azure Active Directory > Overview के अंतर्गत मिलता है। GUID की जगह आप अपना डोमेन नाम, जैसे contoso.onmicrosoft.com, भी इस्तेमाल कर सकते हैं। यह आपके OAuth प्रदाता के अनुसार अलग हो सकता है।

चरण 4: प्रमाणीकरण करें और एक्सेस टोकन प्राप्त करें

MSAL की मदद से एक्सेस टोकन प्राप्त करने का एक सरल उदाहरण:

using Microsoft.Identity.Client;
using Microsoft.Extensions.Configuration;

var config = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build();

var clientId = config["OAuth:ClientId"];
var tenantId = config["OAuth:TenantId"];
var authority = config["OAuth:Authority"];
var scopes = config.GetSection("OAuth:Scopes").Get<string[]>();

var app = ConfidentialClientApplicationBuilder.Create(clientId)
    .WithAuthority(authority)
    .WithClientSecret(config["OAuth:ClientSecret"])
    .Build();

var result = await app.AcquireTokenForClient(scopes).ExecuteAsync();
Console.WriteLine($"Access Token: {result.AccessToken}");

चरण 5: प्रमाणित API कॉल करें

सुरक्षित संसाधन तक पहुँचने के लिए HttpClient का उपयोग करें:

using System.Net.Http;
using System.Net.Http.Headers;

using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = 
    new AuthenticationHeaderValue("Bearer", result.AccessToken);

var response = await httpClient.GetAsync("https://graph.microsoft.com/v1.0/users");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
परीक्षण का एंडपॉइंट: https://graph.microsoft.com/v1.0/users आपके Azure AD टेनेंट के उपयोगकर्ताओं की सूची देता है। इसे इस्तेमाल करने के लिए ऐप पंजीकरण में User.Read.All जैसी Application permissions होनी चाहिए और व्यवस्थापक की सहमति भी दी जानी चाहिए।

सब कुछ ठीक चलने पर आपको इस तरह का उत्तर दिखाई देगा:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "value": [
    {
      "businessPhones": [],
      "displayName": "Dean Hume",
      "givenName": "Dean",
      "jobTitle": null,
      "mail": null,
      "mobilePhone": null,
      "officeLocation": null,
      "preferredLanguage": "en",
      "surname": "Hume",
      "userPrincipalName": "email.com#EXT#@email.onmicrosoft.com",
      "id": "id-response-goes-here"
    }
  ]
}

वैकल्पिक: Entra ID में परीक्षण के लिए OAuth ऐप बनाएँ

यह चरण वैकल्पिक है, क्योंकि आप अपना OAuth प्रदाता इस्तेमाल करना चाह सकते हैं। लेकिन मैं यह पक्का करना चाहता था कि मेरा कोड काम करता है, इसलिए मैंने परीक्षण के लिए Microsoft Entra ID में एक ऐप बनाया।

अगर आप भी ऐसा करना चाहते हैं, तो ये संसाधन देखें:

निष्कर्ष

OAuth 2.0 को मुश्किल समझने की ज़रूरत नहीं है। MSAL जैसी आधुनिक लाइब्रेरी और Visual Studio Code जैसे टूल की मदद से आप कोड की कुछ ही पंक्तियों में सुरक्षित प्रमाणीकरण कर सकते हैं और API तक पहुँच सकते हैं।

इस कोड का उदाहरण देखने के लिए उस GitHub रिपॉज़िटरी (अंग्रेज़ी) पर जाएँ, जिसे मैंने इस लेख के साथ इस्तेमाल करने के लिए बनाया है।