2017-02-09 9 views
5

मैं पहचान सर्वर 4 का उपयोग कर रहा हूं और मैं आत्मनिरीक्षण अंतराल का उपयोग करने की कोशिश कर रहा हूं, लेकिन केवल उन दस्तावेज़ों द्वारा जिन्हें मैं नहीं प्राप्त कर रहा हूं।पहचान सर्वर 4 के साथ आत्मनिरीक्षण अंतराल का सही तरीके से उपयोग कैसे करें?

डॉक्स सिर्फ इस उदाहरण

POST /connect/introspect 
Authorization: Basic xxxyyy 

token=<token> 

देता है अब, क्यों इस बुनियादी प्रमाणीकरण है वहाँ और क्या xxxyyy होना चाहिए? मेरा मतलब है, मेरे ऐप में कोई बुनियादी लेख सेट नहीं है। मैं सिर्फ सेटअप पहचान सर्वर 4 ASP.NET कोर का उपयोग कर ConfigureServices में इस प्रकार है:

services.AddIdentityServer() 
      .AddTemporarySigningCredential() 
      .AddInMemoryApiResources(ApiResourceProvider.GetAllResources()) 
      .AddAspNetIdentity<Usuario>(); 

और Configure में

app.UseIdentity(); 
app.UseIdentityServer(); 

अब मैं करने के लिए/कनेक्ट सिर्फ एक पोस्ट की कोशिश की है/साथ आत्मनिरीक्षण शरीर सिर्फ token=<token>, लेकिन यह 404 लौटा।

मेरा मानना ​​है कि मुझे वास्तव में यह नहीं मिला।

हम ASP.NET कोर में पहचान सर्वर 4 के साथ आत्मनिरीक्षण बिंदु का उपयोग कैसे करते हैं?

+0

आत्मनिरीक्षण अंतराल के साथ आप क्या हासिल करने की कोशिश कर रहे हैं? –

+1

मैं टोकन की वैधता को सत्यापित करने का प्रयास कर रहा हूं। मेरा मतलब है, एक टोकन समाप्त हो सकता है या यह एक वैध टोकन नहीं हो सकता है। मैं इसका उपयोग करके सत्यापित करने में सक्षम होना चाहता हूं। थोड़ी सी खोज में मुझे पता चला कि आत्मनिरीक्षण अंतराल ऐसा करने का तरीका है, लेकिन मुझे वास्तव में यह नहीं मिल रहा है कि इसका उपयोग कैसे किया जाता है। – user1620696

उत्तर

3

इंट्रोसक्शन आमतौर पर आने वाले टोकन को सत्यापित करने के लिए एपीआई द्वारा उपयोग किया जाता है। आत्मनिरीक्षण समापन बिंदु भी प्रति spec प्रमाणीकरण की आवश्यकता है।

https://identityserver4.readthedocs.io/en/release/reference/api_resource.html

और फिर आत्मनिरीक्षण endpoint के खिलाफ प्रमाणित करने के लिए API का नाम/रहस्य का उपयोग करें:

सेट करने के लिए एक API गुप्त की जरूरत है। या तो मूल प्रमाणीकरण का उपयोग या फॉर्म में मान पोस्ट करना।

+4

ओपी: @leastprivilege के उत्तर पर थोड़ा विस्तार करने के लिए: आप स्ट्रिंग '" [yourApiName]: [yourApiSecret] "को बेस 64 एन्कोड करना चाहते हैं, और इसे 'प्राधिकरण' शीर्षलेख 'मूल' मान के रूप में उपयोग करें। – Mashton

0

आईडीएसवीआर 4 का कार्यान्वयन शानदार है, लेकिन दस्तावेज़ों को वांछित होने के लिए बहुत कुछ छोड़ दिया गया - मैंने एक अच्छा समाधान इंटरनेट पर खोज करने के लिए एक कामकाजी समाधान के साथ आने में सक्षम होने के लिए बिताया। 'Spec को पढ़ने' के लिए कहा जा रहा है, यदि आप अवधारणा के लिए नए हैं तो यह हमेशा सहायक नहीं होता है - जो कुछ ऐसा है जो उनके मंचों पर बहुत कुछ होता है।

तो - आपको POST /connect/introspect पर क्या पास करना है स्कोप गुप्त है।

आप config.cs कक्षा को बदलकर त्वरित स्टार्ट को कॉन्फ़िगर कर सकते हैं। यदि आपने इसे अनुकूलित किया है, या क्विकस्टार्ट का उपयोग नहीं कर रहे हैं, तो आपको जो भी डेटास्टोर उपयोग करना है, उसे अपडेट करने की आवश्यकता होगी - लेकिन अवधारणा को (उम्मीद है) स्पष्ट होना चाहिए।

public static IEnumerable<ApiResource> GetApiResources() 
    { 
     return new List<ApiResource> 
     { 
      new ApiResource("MyResource", "My_Resource_DisplayName") 
      { 
       ApiSecrets = new List<Secret> 
       { 
        new Secret("hello".Sha256()) 
       }, 
       Scopes= 
       { 
        new Scope("MY_CUSTOM_SCOPE") 
       } 
      } 
     }; 
    } 

अब ...
1. सुनिश्चित करें कि आपके ग्राहक गुंजाइश है MY_CUSTOM_SCOPE
2. सुनिश्चित करें कि आप गुंजाइश MY_CUSTOM_SCOPE का अनुरोध किया है जब एक वाहक टोकन हो रही।

अब, API संसाधन नाम और इस तरह गुप्त का एक SHA256 हैश बनाने:

Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", userName, password)));

कहाँ उपयोगकर्ता नाम MyResource है और पासवर्ड सादा पाठ है hello (obv अपने खुद के मानों का उपयोग करें।!-) एक स्ट्रिंग जो इस तरह दिखता है के साथ खत्म करना चाहिए: TXlSZXNvdXJjZTpoZWxsbw==

अब, आप IDSvr4 को पोस्ट कर सकते हैं ...

POST /connect/introspect 
Authorization: Basic TXlSZXNvdXJjZTpoZWxsbw== 
Accept: application/json 
Content-Type: application/x-www-form-urlencoded 

token=<YOUR_TOKEN> 

तो, जब तक आपके वाहक टोकन गुंजाइश MY_CUSTOM_SCOPE है (या जो भी आप इसे कॉल करना समाप्त कर दिया) - अब आप इसके बारे में जानकारी प्राप्त करने के लिए आईडीएसवीआर के आत्मनिरीक्षण अंतराल पर उपयोग करने में सक्षम होना चाहिए।

आशा है कि मदद करता है!

संबंधित मुद्दे