PageSourceSearch

https://schulconnex.de/assets/js/6aa19704.f2dff54f.js

js schulconnex.de collected 2026-10-04 13:32:42 UTC 10,739 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkschulconnex=globalThis.webpackChunkschulconnex||[]).push([[7078],{10989(e,n,i){i.r(n),i.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>o,frontMatter:()=>d,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"lizenzerweiterung/praxisleitfaden/medium-aufrufen","title":"Typischer Aufruf einer lizensierten Anwendung","description":"Dieser Praxisleitfaden beschreibt den typischen Ablauf beim Aufruf einer lizensierten Anwendung \xfcber die Medienbibliothek eines zentralen Schulportals.","source":"@site/docs/lizenzerweiterung/praxisleitfaden/medium-aufrufen.md","sourceDirName":"lizenzerweiterung/praxisleitfaden","slug":"/lizenzerweiterung/praxisleitfaden/medium-aufrufen","permalink":"/docs/lizenzerweiterung/praxisleitfaden/medium-aufrufen","draft":false,"unlisted":false,"tags":[{"inline":true,"label":"Informativ","permalink":"/docs/tags/informativ"}],"version":"current","frontMatter":{"tags":["Informativ"]},"sidebar":"spezPoliciesSidebar","previous":{"title":"Typische Nutzungsrechte mit ODRL abbilden","permalink":"/docs/lizenzerweiterung/praxisleitfaden/odrl-beispiele"}}');var s=i(74848),t=i(28453);const d={tags:["Informativ"]},l="Typischer Aufruf einer lizensierten Anwendung",u={},a=[{value:"Systemkomponenten",id:"systemkomponenten",level:2},{value:"Ablauf",id:"ablauf",level:2},{value:"Aufrufe der Nutzungsrechte-API",id:"aufrufe-der-nutzungsrechte-api",level:2},{value:"Abruf der verf\xfcgbaren Anwendungen",id:"abruf-der-verf\xfcgbaren-anwendungen",level:3},{value:"Request",id:"request",level:4},{value:"Response",id:"response",level:4},{value:"Abruf des Lizenzschl\xfcssels f\xfcr die lizensierte Anwendung",id:"abruf-des-lizenzschl\xfcssels-f\xfcr-die-lizensierte-anwendung",level:3},{value:"Request",id:"request-1",level:4},{value:"Response",id:"response-1",level:4}];function c(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"typischer-aufruf-einer-lizensierten-anwendung",children:"Typischer Aufruf einer lizensierten Anwendung"})}),"\n",(0,s.jsx)(n.p,{children:"Dieser Praxisleitfaden beschreibt den typischen Ablauf beim Aufruf einer lizensierten Anwendung \xfcber die Medienbibliothek eines zentralen Schulportals."}),"\n",(0,s.jsx)(n.h2,{id:"systemkomponenten",children:"Systemkomponenten"}),"\n",(0,s.jsx)(n.p,{children:"Folgende Systemkomponenten spielen bei dem Aufruf zusammen:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Ein ",(0,s.jsx)(n.strong,{children:"zentrales Schulportal"}),", aus dem heraus der Aufruf ausgel\xf6st wird. Dabei k\xf6nnte es sich um ein klassisches Server-Portal oder auch um eine Lernplattform handeln. Das zentrale Schulportal stellt eine ",(0,s.jsx)(n.strong,{children:"Medienbibliothek"})," als graphische Komponente bereit, in welcher alle verf\xfcgbaren Medien (in der Regel mit Titel, Logo und Beschreibung) dargestellt sind und per Browserklick aufgerufen werden k\xf6nnen."]}),"\n",(0,s.jsxs)(n.li,{children:["Ein ",(0,s.jsx)(n.strong,{children:"Identit\xe4tsdienst (IdP)"})," oder Identit\xe4tsvermittlungsdienst mit ",(0,s.jsx)(n.strong,{children:"Single-Sign-on (SSO)"}),", in welchem die Benutzerdaten zentral verwaltet werden."]}),"\n",(0,s.jsxs)(n.li,{children:["Ein ",(0,s.jsx)(n.strong,{children:"Lizenz-Management"}),", mit welchem die verantwortlichen Personen einer Schule (Administratoren, Medienbeauftragte) erworbene Lizenzen den Sch\xfcler/-innen, Lehrkr\xe4ften und Lerngruppen zuweisen k\xf6nnen."]}),"\n",(0,s.jsxs)(n.li,{children:["Eine ",(0,s.jsx)(n.strong,{children:"lizensierte Anwendung"}),", beispielsweise ein digitales Schulbuch (E-Book)."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"ablauf",children:"Ablauf"}),"\n",(0,s.jsx)(n.p,{children:"Das folgende Diagramm zeigt den Gesamtablauf inkl. Authentisierung am Identit\xe4tsdienst (IdP) mit Single-Sign-on."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.mermaid,{value:"sequenceDiagram\n    autonumber\n    actor User\n    participant P as Zentrales Schulportal\n    participant IdP as IdP\n    participant LM as 
1Lizenz-Management\n    participant A as Lizensierte Anwendung\n\n    User->>P: Login\n    P->>IdP: SSO-Authentisierung\n    P->>IdP: GET /person-info\n    P->>LM: GET /policies-info\n    User->>P: Aufruf Medienbibliothek\n    Note over P: Medienbibliothek mit<br/>Links zu den<br/>verf\xfcgbaren Anwendungen\n    User->>P: Klick zur Anwendung\n    P->>A: Weiterleitung zur Anwendung\n    activate A\n    A->>IdP: SSO-Authentisierung\n    A->>IdP: GET /person-info\n    A->>LM: GET /policies-info?access_control=true\n    Note over A: Validierung des Lizenzschl\xfcssels\n    User->>A: Nutzung der Anwendung\n    User->>A: Logout\n    A->>P: Zur\xfcck zum Schulportal\n    deactivate A "}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:"Der Aufruf der lizensierten Anwendung wird in der Regel im Browser durch eine/-n Sch\xfcler/-in oder eine Lehrkraft (User) bei der Interaktion mit dem zentralen Schulportal ausgel\xf6st."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Der User loggt sich beim Schulportal ein und dieses ruft die schulbezogenen Personendaten \xfcber ",(0,s.jsx)(n.code,{children:"/person-info"})," ab (1-3)."]}),"\n",(0,s.jsx)(n.li,{children:"Das Schulportal ruft \xfcber die Nutzungsrechte-API eine Liste aller verf\xfcgbaren Anwendungen ab, die im Kontext des User nutzbar sind (4)."}),"\n",(0,s.jsx)(n.li,{children:"Der User nutzt die Medienbibliothek, um per Browserklick zu der gew\xfcnschten Anwendung zu gelangen (5-7)."}),"\n",(0,s.jsx)(n.li,{children:"Das System der Anwendung nutzt das SSO und ruft ebenfalls die ben\xf6tigten schulbezogenen Personendaten ab (8-9)."}),"\n",(0,s.jsx)(n.li,{children:"Das System der Anwendung ruft den Lizenschl\xfcssel der gew\xfcnschten Anwendung ab (10)."}),"\n",(0,s.jsx)(n.li,{children:"Der User nutzt die Anwendung bis zum Logout und kehrt zum zentralen Schulportal zur\xfcck (11-13)."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"aufrufe-der-nutzungsrechte-api",children:"Aufrufe der Nutzungsrechte-API"}),"\n",(0,s.jsx)(n.h3,{id:"abruf-der-verf\xfcgbaren-anwendungen",children:"Abruf der verf\xfcgbaren Anwendungen"}),"\n",(0,s.jsx)(n.p,{children:"Beim Abruf der verf\xfcgbaren Anwendungen gibt die Nutzungsrechte-API s\xe4mtliche Anwendungen zur\xfcck, die im Kontext des angemeldeten Personenkontexts oder der angemeldeten Person zur Verf\xfcgung stehen. Mit diesen Information wird die graphische Oberfl\xe4che der Medienbibliothek passgenau ausschlie\xdflich mit Links zu denjenigen Anwendungen bef\xfcllt, die auch tats\xe4chlich nutzbar sind."}),"\n",(0,s.jsx)(n.h4,{id:"request",children:"Request"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"GET /v1/policies-info\n"})}),"\n",(0,s.jsx)(n.h4,{id:"response",children:"Response"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "pid": "df6588cf8dc649ef79fcc852e1064761442a32bf3496ecd9bde0f66a18685aaa",\n  "data": [\n    {\n      "policy": {\n        "id": "https://example.com/v1/policies-info/9230294b-68da-4f4f-aa63-ad9040122aa7",\n        "target": {\n          "uid": "urn:issuer:medium:12345",\n          "partOf": "urn:issuer:catalogue"\n        },\n        "permission": [\n          {\n            "action": ["execute"]\n          }\n        ]\n      }\n    },\n    {\n      "policy": {\n        "id": "https://example.com/v1/policies-info/9230294b-68da-4f4f-aa63-ad9040123bc4",\n        "target": {\n          "uid": "urn:issuer:medium:67890",\n          "partOf": "urn:issuer:catalogue"\n        },\n        "permission": [\n          {\n            "action": ["execute"]\n          }\n        ]\n      }\n    },\n    {\n      "policy": {\n        "id": "https://example.com/v1/policies-info/9230294b-68da-4f4f-aa63-ad90401211e9",\n        "target": {\n          "uid": "urn:issuer:medium:abcde",\n          "partOf": "urn:issuer2:catalogue"\n        },\n        "permission": [\n          {\n            "action": ["execute"]\n          }\n        ]\n      }\n    }\n  ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"abruf-des-lizenzschl\xfcssels-f\xfcr-die-lizensierte-anwendung",children:"Abruf des Lizenzschl\xfcssels f\xfcr die lizensierte Anwendung"}),"\n",(0,s.jsxs)(n.p,{children:["Beim Abruf des Lizenzschl\xfcssels f\xfcr die aufgerufene lizensierte Anwendung wird dem Anbieter ausschlie\xdflich das Nutzungsrecht f\xfcr die aufgerufene Anwendung samt Lizenzschl\xfcssel bereitgestellt. Er erwartet bei der R\xfcckgabe von ",(0,s.jsx)(n.code,{children:"/policies-info"})," einen Array mit nur einem Objekt."]}),"\n",(0,s.jsx)(n.h4,{id:"request-1",children:"Request"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"GET /v1/policies-info?target.uid=urn:issuer:medium:123456789&target.partOf=urn:issuer:catalogue\n&access_control=true\
1n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"access_control=true"}),": Anforderung des Lizenzschl\xfcssels"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"target.uid=urn:issuer:medium:12345"}),": Die Medien-ID der Anwendung"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"target.partOf=urn:issuer:catalogue"}),": Die ID des Medienkatalogs, zu dem die Medien-ID geh\xf6rt"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"response-1",children:"Response"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n  "pid": "df6588cf8dc649ef79fcc852e1064761442a32bf3496ecd9bde0f66a18685aaa",\n  "data": [\n    {\n      "policy": {\n        "id": "https://example.com/v1/policies-info/9230294b-68da-4f4f-aa63-ad9040122aa7",\n        "target": {\n          "uid": "urn:issuer:medium:12345",\n          "partOf": "urn:issuer:catalogue"\n        },\n        "permission": [\n          {\n            "action": ["execute"]\n          }\n        ]\n      },\n      "access_control": {\n        "type": "license_key",\n        "value": {\n          "licenseKey": "5f49ff7f-76a6-4d8b-ae40-e1aba0d57f21"\n        }\n      }\n    }\n  ]\n}\n'})})]})}function o(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},28453(e,n,i){i.d(n,{R:()=>d,x:()=>l});var r=i(96540);const s={},t=r.createContext(s);function d(e){const n=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.