KNF:Scoping: verschil tussen versies

Uit Kennisnet Developers Documentatie
Ga naar: navigatie, zoeken
(Authenticatie verzoek met scoping)
Regel 4: Regel 4:
 
Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt.
 
Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt.
   
==realm scoping==
 
Kennisnet heeft in juli 2020 realm scoping mogelijk gemaakt.
 
 
Met realm scoping kan een dienst direct een realm (school) meegeven in het authnRequest. Deze functie wordt gebruikt indien een Identity Provider door meerdere scholen wordt gebruikt, bijvoorbeeld: Magister, SOMtoday, Itslearning, etc.
 
 
<!-- De volledige werking van scoping staat uitgelegd in dit document, t.b.v. de keten start schooljaar: [[Media:realm-scoping.pdf]] -->
 
===Entity ID en Realms===
 
De Entity ID's van aangesloten Identity Providers of realms van aangesloten scholen zijn beschikbaar via:
 
https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode
 
   
 
==Authenticatie verzoek met scoping==
 
==Authenticatie verzoek met scoping==
 
Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie.
 
Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie.
 
Het authenticatie verzoek komt in dit geval van ''<nowiki>https://bestelshop</nowiki>''.
 
Het authenticatie verzoek komt in dit geval van ''<nowiki>https://bestelshop</nowiki>''.
De scoping wordt gedaan op “realm1a” (behorend bij “School 1” en “IdP1”).
+
De scoping wordt gedaan op ''<nowiki>https://mijn-idp</nowiki>''.
   
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
Regel 29: Regel 20:
 
<Scoping>
 
<Scoping>
 
<IDPList>
 
<IDPList>
<IDPEntry ProviderID="realm1a" />
+
<IDPEntry ProviderID="https://mijn-idp" />
 
</IDPList>
 
</IDPList>
 
</Scoping>
 
</Scoping>
Regel 35: Regel 26:
   
 
</syntaxhighlight>
 
</syntaxhighlight>
  +
  +
  +
==realm scoping==
  +
Kennisnet heeft in juli 2020 realm scoping mogelijk gemaakt.
  +
  +
Met realm scoping kan een dienst direct een realm (school) meegeven in het authnRequest. Deze functie wordt gebruikt indien een Identity Provider door meerdere scholen wordt gebruikt, bijvoorbeeld: Magister, SOMtoday, Itslearning, etc.
  +
  +
<!-- De volledige werking van scoping staat uitgelegd in dit document, t.b.v. de keten start schooljaar: [[Media:realm-scoping.pdf]] -->
  +
===Entity ID en Realms===
  +
De Entity ID's van aangesloten Identity Providers of realms van aangesloten scholen zijn beschikbaar via:
  +
https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode
   
 
==Scoping met SimpleSAMLphp==
 
==Scoping met SimpleSAMLphp==

Versie van 9 sep 2020 om 08:19

Scoping maakt het mogelijk dat een Service Provider één of meerdere Identity Providers opgeeft in een authnRequest. Hiermee kan je als Service Provider bepalen welke Identity Providers ondersteund worden.

Indien één Identity Provider wordt opgegeven, wordt het WAYF scherm van Entree Federatie overgeslagen. Deze functie is vooral handig indien je voor scholen een aparte omgeving / subdomein hebt.


Authenticatie verzoek met scoping

Authenticatie verzoek met scoping van de Service Provider naar Entree Federatie. Het authenticatie verzoek komt in dit geval van https://bestelshop. De scoping wordt gedaan op https://mijn-idp.

<AuthnRequest Version="2.0"
      IssueInstant="2019-12-06T10:00:02Z"
      Destination="https://aselect.entree.kennisnet.nl/openaselect/profiles/saml2/sso/web
      AssertionConsumerServiceURL="https://bestelshop/saml2-acs.php"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
<Issuer>https://bestelshop</Issuer>
<NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/>
 <Scoping>
  <IDPList>
    <IDPEntry ProviderID="https://mijn-idp" />
  </IDPList>
 </Scoping>
</AuthnRequest>


realm scoping

Kennisnet heeft in juli 2020 realm scoping mogelijk gemaakt.

Met realm scoping kan een dienst direct een realm (school) meegeven in het authnRequest. Deze functie wordt gebruikt indien een Identity Provider door meerdere scholen wordt gebruikt, bijvoorbeeld: Magister, SOMtoday, Itslearning, etc.

Entity ID en Realms

De Entity ID's van aangesloten Identity Providers of realms van aangesloten scholen zijn beschikbaar via: https://aselect.entree.kennisnet.nl/openaselect/sso/wayfsearch2?type=getAll&spCode

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