Delen via


Referentie voor BHOLD-ontwikkelaars voor Microsoft Identity Manager 2016

De BHOLD-core-module kan scriptopdrachten verwerken. U kunt dit rechtstreeks doen met behulp van de bscript.dll in een .NET-project. Ook interactie met de webservice b1scriptservice.asmx-interface.

Voordat een script is uitgevoerd, moet alle informatie in het script worden verzameld om dit script op te stellen. Deze informatie kan worden verzameld uit de volgende bronnen:

  • Gebruikersinvoer
  • BHOLD-gegevens
  • Toepassingen
  • Anders

De BHOLD-gegevens kunnen worden opgehaald met behulp van de functie GetInfo van het scriptobject. Er is een volledige lijst met opdrachten waarmee alle gegevens kunnen worden weergegeven die zijn opgeslagen in de BHOLD-database. De gepresenteerde gegevens zijn echter onderhevig aan de weergavemachtigingen van de gebruiker die is aangemeld. Het resultaat is in de vorm van een XML-document dat kan worden geparseerd.

Een andere bron voor informatie kan een van de toepassingen zijn die worden beheerd door BHOLD. De toepassingsmodule heeft een speciale functie, FunctionDispatch, die kan worden gebruikt om toepassingsspecifieke informatie weer te geven. Dit wordt ook weergegeven als een XML-document.

Ten slotte, als er geen andere manier is, kan het script opdrachten rechtstreeks naar andere toepassingen of systemen bevatten. NoThenstalling van extra software op de BHOLD-server kan de beveiliging van het hele systeem ondermijnen.

Al deze informatie wordt in één XML-document geplaatst en toegewezen aan het BHOLD-scriptobject. Het object combineert dit document met een vooraf gedefinieerde functie. De vooraf gedefinieerde functie is een XSL-document waarmee het scriptinvoerdocument wordt omgezet in een BHOLD-opdrachtdocument.

BHOLD-scriptverwerking

De opdrachten worden in dezelfde volgorde uitgevoerd als in het document. Als één functie mislukt, worden alle uitgevoerde opdrachten teruggedraaid.

Scriptobject

In deze sectie wordt beschreven hoe u het scriptobject gebruikt.

BHOLD-informatie ophalen

De functie GetInfo wordt gebruikt om informatie op te halen uit de beschikbare gegevens in het BHOLD-autorisatiesysteem. De functie vereist een functienaam en uiteindelijk een of meer parameters. Als deze functie slaagt, wordt een BHOLD-object of -verzameling geretourneerd in de vorm van een XML-document.

Als de functie niet slaagt, retourneert de functie GetInfo een lege tekenreeks of een fout. De foutbeschrijving en het nummer kunnen worden gebruikt om meer informatie over de fout op te halen.

De GetInfo-functie 'FunctionDispatch' kan worden gebruikt om informatie op te halen uit een toepassing die wordt beheerd door het BHOLD-systeem. Voor deze functie zijn drie parameters vereist: de id van de toepassing, de verzendfunctie zoals deze is gedefinieerd in de ASI en een XML-document met ondersteunende informatie voor de ASI. Als de functie slaagt, is het resultaat beschikbaar in XML-indeling in het resultaatobject.

Het onderstaande codefragment is een eenvoudig C#-voorbeeld van GetInfo:

ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");

Op dezelfde manier kan het BScript-object ook worden geopend via de webservice b1scriptservice. Dit wordt gedaan door een webreferentie toe te voegen aan uw project met behulp van http://< server>:5151/BHOLD/Core/b1scriptservice.asmx, waarbij <server> de server is waarop de binaire BHOLD-bestanden zijn geïnstalleerd. Zie Een webservicereferentie toevoegen aan een Visual Studio-project voor meer informatie.

In het volgende voorbeeld ziet u hoe u de functie GetInfo van een webservice gebruikt. Met deze code wordt de organisatie-eenheid opgehaald die een organisatie-id van 1 heeft en wordt vervolgens de naam van die organisatie-eenheid op het scherm weergegeven.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace bhold_console
{
    class Program
    {
        static void Main(string[] args)
        {
             var bholdService = new BHOLDCORE.B1ScriptService();
             bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
             string orgname= "";

             if (args.Length == 3)
             {
                 //Use explicit credentials from command line
                 bholdService.UseDefaultCredentials = false;
                 bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                 bholdService.PreAuthenticate = true;
             }
             else
             {
                 bholdService.UseDefaultCredentials = true;
                 bholdService.PreAuthenticate = true;
             }

             //Load BHOLD information into an xml document and loop through document to find the bholdDescription value
             var myOrgUnit = new System.Xml.XmlDocument();
             myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");

            XmlNodeList myList = myOrgUnit.SelectNodes(("//item");

            foreach (XmlNode myNode in myList)
            {
                for (int i = 0; i < myNode.ChildNodes.Count; i++)
                {
                    if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
                    {
                        orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
                    }
                }
            }

            System.Console.WriteLine("The Organizational Unit Name is: " + orgname);

        }
    }
}

In het volgende VBScript-voorbeeld wordt de webservice gebruikt via SOAP en met behulp van GetInfo. Zie de sectie BHOLD Managed Reference voor aanvullende voorbeelden voor SOAP 1.1, SOAP 1.2 en HTTP POST. U kunt ook rechtstreeks vanuit een browser naar de webservice navigeren en deze daar bekijken.

Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp

Set xmlhttp = CreateObject("Microsoft.XMLHTTP")

xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"

xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"

SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest

xmlhttp.send SOAPRequest 

SOAPResponse = xmlhttp.responseText

MsgBox SOAPResponse

Scripts uitvoeren

De functie ExecuteScript van het BScript-object kan worden gebruikt om scripts uit te voeren. Voor deze functie zijn twee parameters vereist. De eerste parameter is het XML-document dat de aangepaste informatie bevat die door het script moet worden gebruikt. De tweede parameter is de naam van het vooraf gedefinieerde script dat moet worden gebruikt. In de map met vooraf gedefinieerde BHOLD-scripts moet hier een XSL-document zijn met dezelfde naam als de functie, maar met de extensie .xsl.

Als de functie niet slaagt, retourneert de functie ExecuteScript de waarde False. De foutbeschrijving en het nummer kunnen worden gebruikt om te weten wat er fout is gegaan. Hier volgt een voorbeeld van het gebruik van de executeXML-webmethode. Met deze methode wordt ExecuteScript aangeroepen.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            var bholdService = new BHOLDCORE.B1ScriptService();
            bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";

            if (args.Length == 3)
            {
                //Use explicit credentials from command line
                bholdService.UseDefaultCredentials = false;
                bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
                bholdService.PreAuthenticate = true;
            }
            else
            {
                bholdService.UseDefaultCredentials = true;
                bholdService.PreAuthenticate = true;
            }
            System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
            System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));

        }

        private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
        {
            var script = new System.Xml.XmlDocument();
            script.LoadXml(string.Format("<functions>"
                                        +"  <function name='roleadduser' roleid='{0}' userid='{1}' />"
                                        +"</functions>",
                                        roleId,
                                        userId)
                           );
            return script.DocumentElement;

BholdScriptResult

Deze functie GetInfo is beschikbaar nadat de executescript-functie is uitgevoerd. De functie retourneert een tekenreeks met XML-indeling die het volledige uitvoeringsrapport bevat. Het knooppunt Script bevat de XML-structuur van het uitgevoerde script.

Voor elke functie die mislukt tijdens het uitvoeren van het script wordt een knooppuntfunctie toegevoegd met de naam van de knooppunten. ExecuteXML en Error worden toegevoegd aan het einde van het document. Alle gegenereerde id's worden toegevoegd.

U ziet dat alleen de functies, die een fout bevatten, worden toegevoegd. Een foutnummer van '0' betekent dat de functie niet wordt uitgevoerd.

<Bhold>
  <Script>
    <functions>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>     
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>      
    </functions>
  </Script>
  <Function>
    <Name>OrgUnitadd</Name>
    <ExecutedXML>
      <function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
    </ExecutedXML>
    <Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
  </Function>
  <Function>
    <Name>roleaddOrgUnit</Name>
    <ExecutedXML>
      <function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
    </ExecutedXML>
    <Error Number="0" Description=""/>
  </Function>
  <IDS>
    <ID name="@ID@">35</ID>
  </IDS>
</Bhold>

Id-parameters

Id-parameters krijgen een speciale behandeling. Niet-numerieke waarden worden gebruikt als zoekwaarde voor het zoeken naar de bijbehorende entiteiten in het BHOLD-gegevensarchief. Wanneer de zoekwaarde niet uniek is, wordt de eerste entiteit geretourneerd die voldoet aan de zoekwaarde.

Als u numerieke zoekwaarden van id's wilt onderscheiden, kunt u een voorvoegsel gebruiken. Wanneer de eerste zes tekens van de zoekwaarde gelijk zijn aan 'no_id:', worden deze tekens verwijderd voordat de waarde wordt gebruikt voor zoeken. SQL-jokertekens %kunnen worden gebruikt.

De volgende velden worden gebruikt met de zoekwaarde:

Id-type Zoekveld
OrgUnitID Description
roleID Description
Taskid Description
userID DefaultAlias

Scripttoegang en -machtigingen

Code aan de serverzijde op de actieve serverpagina's wordt gebruikt om de scripts uit te voeren. Toegang tot het script betekent daarom toegang tot deze pagina's. Het BHOLD-systeem houdt informatie bij over de ingangspunten van de aangepaste pagina's. Deze informatie omvat de startpagina en de beschrijving van de functie (meerdere talen moeten worden ondersteund).

Een gebruiker is gemachtigd om de aangepaste pagina's in te voeren en een script uit te voeren. Elk toegangspunt wordt weergegeven als een taak. Elke gebruiker die deze taak heeft verkregen via een rol of een eenheid, kan de bijbehorende functie uitvoeren.

Een nieuwe functie in het menu bevat alle aangepaste functies die door de gebruiker kunnen worden uitgevoerd. Omdat een script acties kan uitvoeren in het BHOLD-systeem onder een identiteit die verschilt van de gebruiker die is aangemeld. Het is mogelijk om toestemming te geven om één specifieke actie uit te voeren zonder toezicht te hebben op een object. Dit kan bijvoorbeeld handig zijn voor een werknemer die alleen nieuwe klanten bij het bedrijf mag invoeren. Deze scripts kunnen ook worden gebruikt om zelfregistratiepagina's te maken.

Opdrachtscript

Het opdrachtscript bevat een lijst met functies die worden uitgevoerd door het BHOLD-systeem. De lijst is geschreven in een XML-document dat voldoet aan de volgende definities:

Opdrachtscript <functions>functions</functions>
Functies functie {function}
Functie <function name="functionName" functionParameters [return] (/> | > parameterList </ function>)
functionName Een geldige functienaam zoals beschreven in de volgende secties.
functionParameters { functionParameter }
functieParameter parameterName = "parameterValue"
parameterName Een geldige parameternaam.
Parametervalue @variable@ | Waarde
waarde Een geldige parameterwaarde.
parameterList <parameters> {parameterItem} </parameters>
parameterItem <parameter name="parameterName"> parameterValue </parameter>
terugkeren return="@variable@"
Variabele Een aangepaste variabelenaam.

XML bevat de volgende vertalingen van speciale tekens:

XML Teken
&amp; &
&lt; <
&gt; >
&quot; "
&apos; '

Deze XML-tekens kunnen worden gebruikt in id's, maar worden niet aanbevolen.

De volgende code toont een voorbeeld van een geldig opdrachtdocument met drie functies:

<functions>

   <functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />

   <function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />

   <function name="TaskAddFile" taskID="93" path="/customers/purchase">
      <parameters>
         <parameter name="history"> True</parameter>
      </parameters>
   </function>

</functions>

De functie OrgUnitAdd slaat de id van de gemaakte eenheid op in een variabele met de naam UnitID. Deze variabele wordt gebruikt als invoer voor de functie UserAdd. De retourwaarde van deze functie wordt niet gebruikt. In de volgende secties worden alle beschikbare functies, de vereiste parameters en de bijbehorende retourwaarden beschreven.

Functies uitvoeren

In deze sectie wordt beschreven hoe u de uitvoeringsfuncties gebruikt.

ABAAttributeRuleAdd

Maak een nieuwe kenmerkregel voor een specifiek kenmerktype. Kenmerkregels kunnen slechts aan één kenmerktype worden gekoppeld.

De opgegeven kenmerkregel kan worden gekoppeld aan alle mogelijke kenmerktypen.

Het RuleType kan niet worden gewijzigd met de opdracht ABAattributeruletypeupdate. Vereist dat de beschrijving van het kenmerk uniek is.

Argumenten Type
Description Tekst
Regeltype Geef het type kenmerkregel op. Afhankelijk van het type kenmerkregel moeten andere argumenten worden opgenomen. De volgende regeltypewaarden zijn geldig:
  • 0: Reguliere expressie (argument 'waarde toevoegen').
  • 1: Waarde (argumenten 'operator' en 'waarde' toevoegen).
  • 2: Lijst met waarden.
  • 3: Bereik (de argumenten 'rangemin' en 'rangemax' toevoegen).
  • 4: Leeftijd (voeg argumenten 'operator' en 'value' toe).
InvertResult ["0"|"1"|"N"|"Y"]
AttributeTypeID Tekst
Optionele argumenten Type
Operator Tekst
Opmerking: dit argument is verplicht als RuleType 1 of 4 is. De mogelijke waarden zijn =, '<' of '>'. XML-tags moeten '>' gebruiken voor '>' en '<' voor '<'.
BereikMin Aantal
Opmerking: dit argument is verplicht als RuleType 3 is.
Rangemax Aantal
Opmerking: dit argument is verplicht als RuleType 3 is.
Waarde Tekst
Opmerking: dit argument is verplicht als RuleType 0, 1 of 4 is. Het argument moet een numerieke of alfanumerieke waarde zijn.
Retourtype AttributeRuleID Tekst

applicationadd

Maakt een nieuwe toepassing en retourneert de id van de nieuwe toepassing.

Argumenten Type
beschrijving
Machine
module
parameter
protocol
gebruikersnaam
wachtwoord
svroleID (optioneel) Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt.
Applicationaliasformula (optioneel) De aliasformule wordt gebruikt om een alias voor een gebruiker te maken wanneer deze wordt toegewezen aan een machtiging van de toepassing. De alias wordt gemaakt als de gebruiker nog geen alias voor deze toepassing heeft. Als er geen waarde wordt gegeven, wordt de standaardalias van de gebruiker gebruikt als alias voor de toepassing. De formule is opgemaakt als [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)]. De offset is optioneel. Alleen gebruikers- en toepassingskenmerken kunnen worden gebruikt. Vrije tekst kan worden gebruikt. De gereserveerde tekens zijn vierkante haakjes ([) en vierkante haak rechts (]). Bijvoorbeeld: [Application.bholdDescription]\[User.bholdDefAlias(1,5)].
Retourtype Id van de nieuwe toepassing.

AttributeSetValue

Hiermee stelt u de waarde in van een kenmerktype dat is verbonden met het objecttype. Vereist dat de beschrijvingen van het objecttype en het kenmerktype uniek zijn.

Argumenten Type
ObjectTypeID Tekst
ObjectID Tekst
AttributeTypeID Tekst
Waarde Tekst
Retourtype Type

AttributeTypeAdd

Hiermee voegt u een nieuw kenmerktype/eigenschapstype in.

Argumenten Type
DataTypeID Tekst
Beschrijving (=Identiteit) Tekst
Opmerking: gereserveerde woorden kunnen niet worden gebruikt, zoals 'a', 'frm', 'id', 'usr' en 'bhold'.
Maxlength Getal in [1,..,255]
ListOfValues (booleaanse waarde) ["0"|"1"|"N"|"Y"]
Standaardwaarde Tekst
Retourtype Type
AttributeTypeID Tekst

AttributeTypeSetAdd

Hiermee voegt u een nieuwe kenmerktypeset in. Vereist dat de beschrijving van een kenmerktypeset uniek is.

Argumenten Type
Beschrijving (=Identiteit) Tekst
Retourtype Type
AttributeTypeSetID Tekst

AttributeTypeSetAddAttributeType

Hiermee wordt een nieuw kenmerktype ingevoegd in een bestaande kenmerktypeset. Vereist dat de beschrijvingen van de kenmerktypeset en kenmerktype uniek zijn.

Argumenten Type
AttributeTypeSetID Tekst
AttributeTypeID Tekst
Volgorde Aantal
LocationID Tekst
Opmerking: de locatie is 'groep' of 'enkel'.
Verplicht ["0"|"1"|"N"|"Y"]
Retourtype Type

ObjectTypeAddAttributeTypeSet

Hiermee voegt u een kenmerktype toe dat is ingesteld op een objecttype. Vereist dat de beschrijving van het objecttype en de kenmerktypeset uniek zijn. De objecttypen zijn: Systeem, OrgUnit, Gebruiker, Taak.

Argumenten Type
ObjectTypeID Tekst
AttributeTypeSetID Tekst
Volgorde Aantal
Zichtbaar
  • 0: de kenmerktypeset is zichtbaar.
  • 2: Het kenmerktype dat is ingesteld, wordt weergegeven wanneer de knop Meer info is geselecteerd.
  • 1: De kenmerktypeset is onzichtbaar.
Retourtype Type

OrgUnitadd

Maakt een nieuwe organisatie-eenheid en retourneert de id van de nieuwe organisatie-eenheid.

Argumenten Type
beschrijving
orgtypeID
parentID
OrgUnitinheritedroles (optioneel)
Retourtype Type
Id van de nieuwe eenheid De parameter OrgUnitinheritedroles
heeft de waarde ja of nee.

OrgUnitaddsupervisor

Maak van een gebruiker een supervisor van een organisatie-eenheid.

Argumenten Type
svroleID Het argument userID kan ook worden gebruikt. In dit geval is de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies.
OrgUnitID

OrgUnitadduser

Een gebruiker lid maken van een organisatie-eenheid.

Argumenten Type
userID
OrgUnitID

OrgUnitdelete

Hiermee verwijdert u een organisatie-eenheid.

Argumenten Type
OrgUnitID

OrgUnitdeleteuser

Hiermee verwijdert u een gebruiker als lid van een organisatie-eenheid.

Argumenten Type
userID
OrgUnitID

roleadd

Hiermee maakt u een nieuwe rol.

Argumenten Type
Description
svrole
svroleID (optioneel) Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt.
ContextAdaptable (optioneel) ["0","1","N","Y"]
MaxPermissions (optioneel) Geheel getal
MaxRoles (optioneel) Geheel getal
MaxUsers (optioneel) Geheel getal
Retourtype Type
Id van de nieuwe rol

roleaddOrgUnit

Hiermee wijst u een rol toe aan een organisatie-eenheid.

Argumenten Type
OrgUnitID roleID
inheritThisRole 'true' of 'false', geeft aan of de rol wordt voorgesteld aan onderliggende eenheden.

roleaddrole

Hiermee wijst u een rol toe als een subrol van een andere rol.

Argumenten Type
roleID
subRoleID

roleaddsupervisor

Maak van een gebruiker een supervisor van een rol.

Argumenten Type
svroleID Het argument userID kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies.
roleID

roleadduser

Hiermee wijst u een rol toe aan een gebruiker. De rol kan geen rol zijn die kan worden aangepast aan de context wanneer er geen contextID is opgegeven.

Argumenten Type
userID
roleID
durationType (optioneel) Kan de waarden 'gratis', 'uren' en 'dagen' bevatten.
durationLength (optioneel) Vereist wanneer durationType 'uren' of 'dagen' is. moet het gehele getal bevatten voor het aantal uren of dagen dat de rol is toegewezen aan een gebruiker.
start (optioneel) De datum en tijd waarop de rol is toegewezen. Wanneer u dit kenmerk weglaat, wordt de rol onmiddellijk toegewezen. Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden.
end (optioneel) De datum en tijd waarop de rol is ingetrokken. Wanneer durationType en durationLength worden opgegeven, wordt deze waarde genegeerd. Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden.
linkreason Vereist wanneer begin, einde of duur wordt opgegeven, anders genegeerd.
contextId (optioneel) Id van de organisatie-eenheid, alleen vereist voor rollen die kunnen worden aangepast aan de context.

roledelete

Hiermee verwijdert u een rol.

Argumenten Type
roleID

roledeleteuser

Hiermee verwijdert u roltoewijzing aan een gebruiker. Overgenomen rollen van de gebruiker worden ingetrokken met deze opdracht.

Argumenten Type
userID
roleID
contextID (optioneel)

roleproposeOrgUnit

Stelt een rol voor om deze toe te wijzen aan de leden en de sub-OrgUnits van een OrgUnit.

Argumenten Type
OrgUnitID
roleID
durationType (optioneel) Kan de waarden 'gratis', 'uren' en 'dagen' bevatten.
durationLength Vereist wanneer durationType 'uren' of 'dagen' is, moet de gehele waarde bevatten voor het aantal uren of dagen dat de rol is toegewezen aan een gebruiker.
durationFixed 'true' of 'false', geeft aan of de toewijzing van deze rol aan een gebruiker gelijk moet zijn aan durationLength.
inheritThisRole 'true' of 'false', geeft aan of de rol wordt voorgesteld aan onderliggende eenheden.

taskadd

Maakt een nieuwe taak en retourneert de id van de nieuwe taak.

Argumenten Type
applicationID
beschrijving Tekst met maximaal 254 tekens.
taaknaam Tekst met maximaal 254 tekens.
tokenGroupID
svroleID (optioneel) Als dit argument niet aanwezig is, wordt een supervisorrol van de huidige gebruiker gebruikt.
contextAdaptable (optioneel) ["0","1","N","Y"]
underconstruction (optioneel) ["0","1","N","Y"]
auditactie (optioneel)
  • 0: onbekend (standaard)
  • 1: ReportOnly
  • 2: AlertAppAll
  • 3: AlertAppObsolete
  • 4: AlertAppMissing
  • 5: EnforceAppAll
  • 6: EnforceAppObsolete
  • 7: EnforceAppMissing
  • 8: AlertEnforceAppAll
  • 9: AlertEnforceAppObsolete
  • 10: AlertEnforceAppMissing
  • 11: Alles importeren
auditalertmail (optioneel) Het e-mailadres waarnaar waarschuwingen over deze toestemming moeten worden verzonden, worden door de auditor verzonden. Als dit argument niet aanwezig is, wordt het waarschuwings-e-mailadres van de auditor gebruikt.
MaxRoles (optioneel) Geheel getal
MaxUsers (optioneel) Geheel getal
Retourtype Id van de nieuwe taak.

taskadditask

Geef aan dat twee taken niet compatibel zijn.

Argumenten Type
Taskid
taskID2

taskaddrole

Hiermee wijst u een taak toe aan een rol.

Argumenten Type
roleID
Taskid

taskaddsupervisor

Een gebruiker een supervisor van een taak maken.

Argumenten Type
svroleID Het argument userID kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaardsupervisorrol heeft een naam als __svrole gevolgd door een getal. Het argument userID kan worden gebruikt voor compatibiliteit met eerdere versies.
Taskid

Useradd

Hiermee maakt u een nieuwe gebruiker en retourneert u de id van de nieuwe gebruiker.

Argumenten Type
beschrijving
alias
Languageid
  • 1: Engels
  • 2: Nederlands
OrgUnitID
einddatum (optioneel) Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden.
uitgeschakeld (optioneel)
  • 0: ingeschakeld
  • 1: uitgeschakeld
MaxPermissions (optioneel) Geheel getal
MaxRoles (optioneel) Geheel getal
Retourtype Id van de nieuwe gebruiker.

UserAddRole

Hiermee voegt u een gebruikersrol toe.

Argumenten Type

UserDeleteRole

Hiermee verwijdert u een gebruikersrol.

Argumenten Type

Userupdate

Updates een gebruiker.

Argumenten Type
UserID
beschrijving (optioneel)
language
  • 1: Engels
  • 2: Nederlands
userDisabled (optioneel)
  • 0: ingeschakeld
  • 1: uitgeschakeld
UserEndDate (optioneel) Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. '2004-12-11' en '2004-11-28T08:00' zijn bijvoorbeeld geldige waarden.
firstName (optioneel)
middleName (optioneel)
lastName (optioneel)
maxPermissions (optioneel) Geheel getal
maxRoles (optioneel) Geheel getal

GetInfo-functies

De set functies die in deze sectie worden beschreven, kan worden gebruikt om informatie op te halen die is opgeslagen in het BHOLD-systeem. Elke functie kan worden aangeroepen met behulp van de functie GetInfo van het BScript-object. Voor sommige objecten zijn parameters vereist. De geretourneerde gegevens zijn onderhevig aan de weergavemachtigingen en de objecten onder supervisie van de gebruiker die is aangemeld.

GetInfo-argumenten

Naam Beschrijving
toepassingen Retourneert een lijst met toepassingen.
kenmerktypen Retourneert een lijst met kenmerktypen.
organisatietypen Retourneert een lijst met typen organisatie-eenheden.
OrgUnits Retourneert een lijst met organisatie-eenheden zonder de kenmerken van de organisatie-eenheden.
OrgUnitproposedroles Retourneert een lijst met voorgestelde rollen die zijn gekoppeld aan de organisatie-eenheid.
OrgUnitroles Retourneert een lijst met rechtstreeks gekoppelde rollen van de opgegeven organisatie-eenheid
Objecttypeattributetypes
permissions
permissionusers
rollen Retourneert een lijst met rollen.
roletasks Retourneert een lijst met taken van de opgegeven rol.
taken Retourneert alle taken die bekend zijn bij BHOLD.
gebruikers Retourneert een lijst met gebruikers.
usersroles Retourneert de lijst met gekoppelde supervisorrollen van de opgegeven gebruiker.
userpermissions Retourneert de lijst met machtigingen van de opgegeven gebruiker.

OrgUnit Info

Name Parameters Retourtype
OrgUnit OrgUnitID OrgUnit
OrgUnitasiattributes OrgUnitID Verzameling
OrgUnits filter (optioneel), proptypeid (optioneel)
Zoekt naar eenheden die de tekenreeks bevatten die wordt beschreven in het filter in het proptype dat wordt beschreven in proptypeid. Als u deze id weglaat, wordt het filter toegepast op de beschrijving van de eenheid. Als er geen filter wordt opgegeven, worden alle zichtbare eenheden geretourneerd.
Verzameling
OrgUnitOrgUnits OrgUnitID Verzameling
OrgUnitparents OrgUnitID Verzameling
OrgUnitpropertyvalues OrgUnitID Verzameling
OrgUnitproptypes Verzameling
OrgUnitusers OrgUnitID Verzameling
OrgUnitproposedroles OrgUnitID Verzameling
OrgUnitroles OrgUnitID Verzameling
OrgUnitinheritedroles OrgUnitID Verzameling
OrgUnitsupervisors OrgUnitID Verzameling
OrgUnitinheritedsupervisors OrgUnitID Verzameling
OrgUnitsupervisorroles OrgUnitID Verzameling

Rolgegevens

Name Parameters Retourtype
role roleID Object
rollen filter (optioneel) Verzameling
roleasiattributes roleID Verzameling
roleOrgUnits roleID Verzameling
roleparentroles roleID Verzameling
rolesubroles roleID Verzameling
rolsupervisors roleID Verzameling
rolesupervisorroles roleID Verzameling
roletasks roleID Verzameling
roleusers roleID Verzameling
rolesupervisorroles roleID Verzameling
proposedroleOrgUnits roleID Verzameling
proposedroleusers roleID Verzameling

Machtiging - Taakgegevens

Name Parameters Retourtype
Toestemming TaskID Machtiging
permissions filter (optioneel) Verzameling
permissionasiattributes TaskID Verzameling
machtigingenbijslag TaskID Verzameling
permissionattributetypes - Verzameling
machtigingsparameters TaskID Verzameling
permissionroles TaskID Verzameling
permissionsupervisors TaskID Verzameling
permissionsupervisorroles TaskID Verzameling
permissionusers TaskID Verzameling
taak TaskID Taak
taken filter (optioneel) Verzameling
taakbijslag TaskID Verzameling
taakparams TaskID Verzameling
taskroles TaskID Verzameling
taaksupervisors TaskID Verzameling
tasksupervisorroles TaskID Verzameling
taskusers TaskID Verzameling

Gebruikersgegevens

Name Parameters Retourtype
gebruiker UserID Gebruiker
gebruikers filter (optioneel), attributetypeid (optioneel)
Hiermee zoekt u naar gebruikers die in het kenmerktype dat is opgegeven door attributetypeid de tekenreeks bevatten die is opgegeven door het filter. Als u deze id weglaat, is het filter van toepassing op de standaardalias van de gebruiker. Als er geen filter wordt opgegeven, worden alle zichtbare gebruikers geretourneerd. Bijvoorbeeld:
  • GetInfo("users") retourneert alle gebruikers.
  • GetInfo("users", "%dmin%") retourneert alle gebruikers met de tekenreeks 'dmin' in de standaardalias.
  • Stel dat gebruikers een extra kenmerk hebben met de naam "City".GetInfo("users", "%msterda%", "City"). Deze aanroep retourneert alle gebruikers met de tekenreeks 'msterda' in het kenmerk Plaats.
UserCollection
gebruikerstoepassingen UserID Verzameling
Gebruikersmachtigingen UserID Verzameling
userroles UserID Verzameling
usersroles UserID Verzameling
gebruikerstaken UserID Verzameling
gebruikerseenheden UserID Verzameling
usertasks UserID Verzameling
userunits UserID Verzameling

Retourtypen

In deze sectie worden de retourtypen van de functie GetInfo beschreven.

Name Retourtype
Verzameling =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS>
Object =<ITEM type="…" description="..." />
OrgUnit = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Machtiging = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Rollen = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS>
Rol = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Taak Zie Machtiging
Gebruikers = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS>
Gebruiker = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>

Voorbeeld van script

Een bedrijf heeft een BHOLD-server en wil een geautomatiseerd script waarmee nieuwe klanten worden gemaakt. De informatie over het bedrijf en de aankoopmanager wordt ingevoerd op een aangepaste webpagina. Elke klant wordt in het model weergegeven als een eenheid onder de eenheid klanten. De inkoopmanager is zowel lid als supervisor van deze eenheid. Er wordt een rol gemaakt die de eigenaren het recht geeft om te kopen op naam van de nieuwe klant.

Deze klant bestaat echter niet in de toepassing. Er is een speciale functie geïmplementeerd in de ASI-functieDispatch waarmee een nieuw klantaccount wordt gemaakt in de aankooptoepassing. Elke klant heeft een klanttype.

De mogelijke typen kunnen ook worden weergegeven door de functie FunctionDispatch. De AA kiest het juiste type voor de nieuwe klant.

Maak een rol en taak om de aankoopbevoegdheden te presenteren. De echte aankoopbevoegdheden worden door de ASI gepresenteerd als een bestand /customers/customer id/purchase. Dit bestand moet worden gekoppeld aan de nieuwe taak.

De actieve serverpagina waarop de informatie wordt verzameld, ziet er als volgt uit:

<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID" 
     value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select>  <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>

De aangepaste pagina's hoeven alleen de juiste informatie op te vragen en een XML-document te maken met de aangevraagde informatie. In dit voorbeeld transformeert de pagina MySubmit de gegevens in het XML-document en wijst deze toe aan het b1script. Parameters-object en roept ten slotte de b1script.ExecuteScript("MyScript") functie aan.

In het volgende invoerscript ziet u dit voorbeeld:

<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>

Dit invoerscript bevat geen opdrachten voor BHOLD. Dit komt doordat dit script niet rechtstreeks door BHOLD wordt uitgevoerd; in plaats daarvan is dit de invoer voor een vooraf gedefinieerde functie. Deze vooraf gedefinieerde functie vertaalt dit object naar een XML-document met BHOLD-opdrachten. Dit mechanisme voorkomt dat de gebruiker scripts naar het BHOLD-systeem verzendt die functies bevatten die de gebruiker niet mag uitvoeren, zoals setUser en functieverzending naar een ASI.

<?xml version="1.0" encoding="utf-8" ?> 
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">

  <function name="roleadduser" roleid="" userid="" /> 
  <function name="roledeleteuser" roleid="" userid="" /> 
  </functions>

Volgende stappen