/ / ASP.net Azure सक्रिय निर्देशिका संघ सेवाओं के लिए OWIN का उपयोग कर एकल साइन ऑन - asp.net, azure, azure-active-directory, adfs

Azure सक्रिय निर्देशिका संघ सेवाओं के लिए OWIN का उपयोग कर ASP.net एकल साइन ऑन - asp.net, azure, azure-active-directory, adfs

मैं इस समाधान के आधार पर एक परियोजना पर काम कर रहा हूं: https://github.com/Azure-Samples/active-directory-dotnet-webapp-wsfederation

वर्तमान में, जिस तरह से उपयोगकर्ता प्रमाणीकृत है वह डिफ़ॉल्ट रूप से है। जब पृष्ठ लोड होता है, तो मैं अपनी लॉगिन स्क्रिप्ट को कॉल करता हूं:

Public Sub SignIn()
If (Not Request.IsAuthenticated) Then
Try
Dim newAuth As AuthenticationProperties = New AuthenticationProperties()
newAuth.RedirectUri = "/"

HttpContext.Current.GetOwinContext().Authentication.Challenge(newAuth, WsFederationAuthenticationDefaults.AuthenticationType)
Catch ex As Exception

End Try

End If
End Sub

संपादित करें अधिक संदर्भ जोड़ने के लिए, APP_START / Startup.Auth.vb के लिए मेरा कोड यहां दिया गया है:

Partial Public Class Startup

Private realm As String = ConfigurationManager.AppSettings("ida:RPIdentifier")
Private aadInstance As String = ConfigurationManager.AppSettings("ida:AADInstance")
Private tenant As String = ConfigurationManager.AppSettings("ida:Tenant")
Private metadata As String = String.Format("{0}/FederationMetadata/2007-06/FederationMetadata.xml", aadInstance)
Private authority As String = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant)


Public Sub ConfigureAuth(app As IAppBuilder)
Try
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
app.UseCookieAuthentication(New CookieAuthenticationOptions())
Dim authOption As WsFederationAuthenticationOptions = New WsFederationAuthenticationOptions()

app.UseWsFederationAuthentication(New WsFederationAuthenticationOptions() With {
.Wtrealm = realm,
.MetadataAddress = metadata,
.Notifications = New WsFederationAuthenticationNotifications() With {
.AuthenticationFailed = Function(context)
context.HandleResponse()
context.Response.Redirect("Home/Error?message=" + context.Exception.Message)
Return Task.FromResult(0)
End Function
}
})
Catch ex As Exception
Throw ex
End Try


End Sub


End Class

मैं क्या बचाना चाहता हूं, हालांकि, अगर कोई हैहमारे नेटवर्क के बाहर साइट पर विचार करता है, मैं नहीं चाहता हूं कि उन्हें Azure एकल साइन ऑन लॉग इन पेज पर रीडायरेक्ट किया जाए। मैं बस उन्हें वेबसाइट पर आगे बढ़ना चाहता हूं, जहां मेरा कोड संभाल लेगा जो वे देख सकते हैं और कर सकते हैं। मैं, आखिरकार, एक लॉगिन बटन जोड़ें जो उन्हें लॉग इन पेज पर ले जाएगा, अगर वे साइट से बाहर हैं। लेकिन, अभी के लिए, मैं लॉगिन पेज को कैसे छोड़ूं?

दूसरा, मैं संभावना को संभालना चाहता हूंAzure एडीएफएस नीचे है। इस मामले में, मैं चाहता हूं कि उपयोगकर्ता को वेबसाइट पर रीडायरेक्ट किया जाए, जैसा कि प्रमाणीकृत उपयोगकर्ता हैं। मैं इंटरनेट से डिस्कनेक्ट करके और अपना ऐप चलाने से इसका परीक्षण करता हूं। मैंने कोशिश ब्लॉक का उपयोग करने का प्रयास किया है, लेकिन मुझे अभी भी ये त्रुटियां मिलती हैं:

रिमोट नाम हल नहीं किया जा सका: "adfs.myCompany.com"

IOException: दस्तावेज़ प्राप्त करने में असमर्थ: https://adfs.myCompany.com/FederationMetadata/2007-06/FederationMetadata.xml

[अवैधऑपरेशन अपवाद: आईडीएक्स 10803: प्राप्त करने में असमर्थ से विन्यास: "https://adfs.myCompany.com/FederationMetadata/2007-06/FederationMetadata.xml"।]

क्या एज़ूर में ये सेटिंग्स बनाना चाहिए या मेरे कोड में होना चाहिए? इनमें से किसी भी मुद्दे के साथ कोई भी मदद महान होगी। मुझे जरूरी था, मैं भी अपना Start.Auth.vb कोड जोड़ सकता हूं।

धन्यवाद

उत्तर:

उत्तर № 1 के लिए -1

दुर्भाग्य से, माइक्रोसॉफ्ट द्वारा प्रदान किए गए नमूनों का उपयोग ऑटो-साइन ऑन लागू करेगा। कहा जा रहा है, दो विकल्प हैं:

  1. एक अलग चुनें प्रमाणीकरण योजना
  2. एक के साथ एक Azure आवेदन का प्रयोग करें ओथ कोड प्रवाह साइन इन करने के लिए जब कोई उपयोगकर्ता लिंक में लॉगिन पर क्लिक करता है, तो उपयोगकर्ता की प्रोफ़ाइल पढ़ें और उनके प्राधिकरण अधिकार निर्धारित करें।

अगर मुझे गलत समझा जाता है, तो कृपया मुझे बताएं। उम्मीद है की यह मदद करेगा!