KNF:Scoping: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 17: | Regel 17: | ||
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement |
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement |
||
− | // Define EntityID// |
+ | // Define EntityID// |
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID") |
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID") |
||
Dim authnRequest As New AuthnRequest() |
Dim authnRequest As New AuthnRequest() |
||
Regel 25: | Regel 25: | ||
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True) |
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True) |
||
− | //Gebruik scoping om school selectie scherm over te slaan?// |
+ | //Gebruik scoping om school selectie scherm over te slaan?// |
If UseScoping = True Then |
If UseScoping = True Then |
||
− | //download json van kennisnet waar de ProviderIDs in zitten// |
+ | //download json van kennisnet waar de ProviderIDs in zitten// |
Dim wc As New WebClient() |
Dim wc As New WebClient() |
||
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId) |
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId) |
||
Regel 34: | Regel 34: | ||
Dim ProviderID As String = "" |
Dim ProviderID As String = "" |
||
For Each w In wayfsearch.Children |
For Each w In wayfsearch.Children |
||
− | + | //zoek voor het juiste providerID bij de opgegeven BRIN// |
|
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then |
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then |
||
ProviderID = w("idp")("asorgcode").ToString() |
ProviderID = w("idp")("asorgcode").ToString() |
Versie van 25 apr 2017 13:45
Scoping maakt het mogelijk dat een Service Provider een lijst van Identity Providers opgeeft in een authnRequest. Hiermee kan je als Service Provider bepalen welke Identity Providers ondersteund worden.
Indien je 1 Identity Provider gebruikt, wordt ook het het WAYF (inlog)scherm wordt overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt.
Scoping met SimpleSAMLphp
Meer informatie daarover kan je op deze website vinden:
https://simplesamlphp.org/docs/stable/simplesamlphp-scoping
Scoping met componentspace
Toevoegen van scoping aan componentspace AuthnRequest()
//Create the AuthnRequest//
Private Function CreateAuthnRequest(certificate As X509Certificate2, ssoURL As String, UseScoping as Boolean, Brin as String) As XmlElement
// Define EntityID//
Dim entityId As String = ConfigurationManager.AppSettings("Entree.EntityID")
Dim authnRequest As New AuthnRequest()
authnRequest.Destination = ssoURL
authnRequest.Issuer = New Issuer(entityId)
authnRequest.ForceAuthn = False
authnRequest.NameIDPolicy = New NameIDPolicy(Nothing, Nothing, True)
//Gebruik scoping om school selectie scherm over te slaan?//
If UseScoping = True Then
//download json van kennisnet waar de ProviderIDs in zitten//
Dim wc As New WebClient()
Dim json As String = wc.DownloadString(“https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode=” & entityId)
Dim wayfsearch As JArray = JArray.Parse(json)
Dim ProviderID As String = ""
For Each w In wayfsearch.Children
//zoek voor het juiste providerID bij de opgegeven BRIN//
If w("ko")("brin").ToString().ToLower() = Brin.ToLower() Then
ProviderID = w("idp")("asorgcode").ToString()
End If
Next
If String.IsNullOrEmpty(ProviderID) = False Then 'ProviderID gevonden
Dim ips As IDPList = New IDPList()
Dim ipe As IDPEntry = New IDPEntry()
ipe.ProviderID = ProviderID
ips.IDPEntries.Add(ipe)
Dim scopeing As Scoping = New Scoping()
scopeing.IDPList = ips
scopeing.ProxyCount = 2
authnRequest.Scoping = scopeing
End If
End If
authnRequest.ProtocolBinding = SAMLIdentifiers.BindingURIs.HTTPPost
authnRequest.AssertionConsumerServiceURL = ConfigurationManager.AppSettings("AssertionConsumerServiceURL")
Dim authnRequestXml As XmlElement = authnRequest.ToXml()
' Add signature
SAMLMessageSignature.Generate(authnRequestXml, certificate.PrivateKey, certificate)
Return authnRequestXml
End Function