Delen via


Referentie voor BHOLD-ontwikkelaars voor Microsoft Identity Manager 2016

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

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

  • Gebruikersinvoer
  • BHOLD-gegevens
  • Toepassingen
  • Overige

De BHOLD-gegevens kunnen worden opgehaald met behulp van de functie GetInfo van het scriptobject. Er is een volledige lijst met opdrachten die alle gegevens kunnen presenteren die zijn opgeslagen in de BHOLD-database. De weergegeven gegevens zijn echter onderhevig aan de weergavemachtigingen van de gebruiker die zich heeft aangemeld. Het resultaat heeft 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, de FunctionDispatch, die kan worden gebruikt om toepassingsspecifieke informatie weer te geven. Dit wordt ook weergegeven als een XML-document.

Als er ten slotte geen andere manier is, kan het script opdrachten rechtstreeks naar andere toepassingen of systemen bevatten. NoThenstallation of 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 uitgevoerd in dezelfde volgorde 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 aantal kunnen worden gebruikt om meer informatie over de fout op te halen.

De functie GetInfo 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-projectvoor 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 met een orgID van 1 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 via SOAP gebruikt en GetInfo gebruikt. Zie voor aanvullende voorbeelden voor SOAP 1.1, SOAP 1.2 en HTTP POST de sectie Beheerde naslaginformatie voor BHOLD of u kunt 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 ExecuteScript--functie 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 gegevens bevat die door het script moeten worden gebruikt. De tweede parameter is de naam van het vooraf gedefinieerde script dat moet worden gebruikt. In de vooraf gedefinieerde BHOLD-scriptsmap moet hier een XSL-document met dezelfde naam als de functie zijn, maar met de extensie .xsl.

Als de functie niet slaagt, retourneert de functie ExecuteScript de waarde False. De foutbeschrijving en het getal 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 xml-opgemaakte tekenreeks die het volledige uitvoeringsrapport bevat. Het scriptknooppunt bevat de XML-structuur van het script dat wordt uitgevoerd.

Voor elke functie die mislukt tijdens de uitvoering 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 die voldoet aan de zoekwaarde geretourneerd.

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 om te zoeken. SQL-jokertekens '%' kunnen worden gebruikt.

De volgende velden worden gebruikt met de zoekwaarde:

Id-type Zoekveld
OrgUnitID Beschrijving
roleID Beschrijving
taskID Beschrijving
userID DefaultAlias

Scripttoegang en machtigingen

Code aan de serverzijde in de Active Server Pages wordt gebruikt om de scripts uit te voeren. Toegang tot het script betekent daarom toegang tot deze pagina's. Het BHOLD-systeem onderhoudt informatie over de toegangspunten van de aangepaste pagina's. Deze informatie omvat de startpagina en functiebeschrijving (er moeten meerdere talen 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 andere identiteit dan 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 mag invoeren bij het bedrijf. 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>
functions functie {function}
functie <function name="functionName" functionParameters [return] (/> | > parameterList </ function>)
functionName Een geldige functienaam zoals beschreven in de volgende secties.
functionParameters { functionParameter }
functionParameter parameterName = "parameterValue"
parameterName Een geldige parameternaam.
parameterValue @variable@ | waarde
waarde Een geldige parameterwaarde.
parameterList <parameters> {parameterItem} </parameters>
parameterItem <parameter name="parameterName"> parameterValue </parameter>
enter return="@variable@"
veranderlijk Een aangepaste variabelenaam.

XML heeft de volgende vertalingen van speciale tekens:

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

Deze XML-tekens kunnen worden gebruikt in id's, maar ze 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 execute-functies 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 Typ
Beschrijving Tekst
RuleType 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 (argumenten 'rangemin' en 'rangemax' toevoegen).
  • 4: Leeftijd (argumenten operator en waarde toevoegen).
InvertResult ["0"|"1"|"N"|"Y"]
AttributeTypeID Tekst
Optionele argumenten Typ
Bediener Tekst
Opmerking: dit argument is verplicht als RuleType- 1 of 4 is. De mogelijke waarden zijn '=', '<' of '>'. XML-tags moeten '>' gebruiken voor '>' en '<' voor '<'.
RangeMin Getal
Opmerking: dit argument is verplicht als RuleType 3 is.
RangeMax Getal
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.
Return type AttributeRuleID Tekst

applicationadd

Hiermee maakt u een nieuwe toepassing, retourneert u de id van de nieuwe toepassing.

Argumenten Typ
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 aan de standaardalias van de gebruiker, wordt deze 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 haken links ([) en vierkante haak rechts (]). Voorbeeld: [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 Typ
ObjectTypeID Tekst
ObjectID Tekst
AttributeTypeID Tekst
Waarde Tekst
Type retour Typ

AttributeTypeAdd

Hiermee voegt u een nieuw kenmerktype/eigenschapstype in.

Argumenten Typ
DataTypeID Tekst
Beschrijving (=Identiteit) Tekst
Opmerking: gereserveerde woorden kunnen niet worden gebruikt, waaronder 'a', 'frm', 'id', 'usr' en 'bhold'.
MaxLength Getal in [1,..,255]
ListOfValues (Booleaanse waarde) ["0"|"1"|"N"|"Y"]
DefaultValue Tekst
Type retour Typ
AttributeTypeID Tekst

AttributeTypeSetAdd

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

Argumenten Typ
Beschrijving (=Identiteit) Tekst
Type retour Typ
AttributeTypeSetID Tekst

AttributeTypeSetAddAttributeType

Hiermee voegt u een nieuw kenmerktype in een bestaande kenmerktypeset in. Vereist dat de beschrijvingen van de kenmerkenset en het kenmerktype uniek zijn.

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

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 Typ
ObjectTypeID Tekst
AttributeTypeSetID Tekst
Bestelling Aantal
Zichtbaar
  • 0: De kenmerktypeset is zichtbaar.
  • 2: De kenmerkenset is zichtbaar wanneer de knop meer informatie is geselecteerd.
  • 1: De kenmerktypeset is onzichtbaar.
Type retour Typ

OrgUnitadd

Hiermee maakt u een nieuwe organisatie-eenheid en retourneert u de id van de nieuwe organisatie-eenheid.

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

OrgUnitaddsupervisor

Een gebruiker een supervisor van een organisatie-eenheid maken.

Argumenten Typ
svroleID De argumentgebruikers-id kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaard supervisorrol heeft een naam zoals __svrole gevolgd door een getal. De argument userID kan worden gebruikt voor achterwaartse compatibiliteit.
OrgUnitID

OrgUnitadduser

Een gebruiker lid maken van een organisatie-eenheid.

Argumenten Typ
userID
OrgUnitID

OrgUnitdelete

Hiermee verwijdert u een organisatie-eenheid.

Argumenten Typ
OrgUnitID

OrgUnitdeleteuser

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

Argumenten Typ
userID
OrgUnitID

roleadd

Hiermee maakt u een nieuwe rol.

Argumenten Typ
Beschrijving
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) Integer
MaxRoles (optioneel) Integer
MaxUsers (optioneel) Integer
Type retour Typ
Id van de nieuwe rol

roleaddOrgUnit

Hiermee wordt een rol toegewezen aan een organisatie-eenheid.

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

roleaddrole

Wijst een rol toe als subrol van een andere rol.

Argumenten Typ
roleID
subRoleID

roleaddsupervisor

Een gebruiker een supervisor van een rol maken.

Argumenten Typ
svroleID De argumentgebruikers-id kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaard supervisorrol heeft een naam zoals __svrole gevolgd door een getal. De argument userID kan worden gebruikt voor achterwaartse compatibiliteit.
roleID

roleadduser

Wijst een rol toe aan een gebruiker. De rol kan geen rol zijn die kan worden aangepast aan de context wanneer er geen context-id wordt gegeven.

Argumenten Typ
userID
roleID
durationType (optioneel) Kan de waarden 'gratis', 'uren' en 'dagen' bevatten.
durationLength (optioneel) Vereist wanneer durationType 'uren' of 'dagen' is. moet de waarde voor het gehele getal bevatten voor het aantal uren of dagen dat de rol aan een gebruiker is toegewezen.
starten (optioneel) Datum en tijd waarop de rol is toegewezen. Wanneer dit kenmerk wordt weggelaten, wordt de rol onmiddellijk toegewezen. Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. bijvoorbeeld '2004-12-11' en '2004-11-28T08:00' zijn geldige waarden.
einde (optioneel) Datum en tijd waarop de rol wordt 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. bijvoorbeeld '2004-12-11' en '2004-11-28T08:00' zijn geldige waarden.
linkreason Vereist wanneer het begin, einde of de duur wordt gegeven, anders genegeerd.
contextId (optioneel) Id van de organisatie-eenheid, alleen vereist voor context aanpasbare rollen.

roledelete

Hiermee verwijdert u een rol.

Argumenten Typ
roleID

roledeleteuser

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

Argumenten Typ
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 Typ
OrgUnitID
roleID
durationType (optioneel) Kan 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

Hiermee maakt u een nieuwe taak, retourneert u de id van de nieuwe taak.

Argumenten Typ
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"]
auditaction (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: ImportAll
auditalertmail (optioneel) Het e-mailadres waarover waarschuwingen over deze machtiging zijn verzonden, worden door de auditor verzonden. Als dit argument niet aanwezig is, wordt het e-mailadres van de waarschuwing van de auditor gebruikt.
MaxRoles (optioneel) Integer
MaxUsers (optioneel) Integer
Type retour Id van de nieuwe taak.

taskadditask

Geef aan dat twee taken niet compatibel zijn.

Argumenten Typ
taskID
taskID2

taskaddrole

Hiermee wijst u een taak toe aan een rol.

Argumenten Typ
roleID
taskID

taskaddsupervisor

Een gebruiker een supervisor van een taak maken.

Argumenten Typ
svroleID De argumentgebruikers-id kan ook worden gebruikt. In dit geval wordt de standaardsupervisorrol geselecteerd. Een standaard supervisorrol heeft een naam zoals __svrole gevolgd door een getal. De argument userID kan worden gebruikt voor achterwaartse compatibiliteit.
taskID

useradd

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

Argumenten Typ
beschrijving
bijnaam
languageID
  • 1: Engels
  • 2: Nederlands
OrgUnitID
einddatum (optioneel) Datumnotatie is 'JJJJ-MM-DDThh:nn:ss', waarbij alleen jaar, maand en dag vereist zijn. bijvoorbeeld '2004-12-11' en '2004-11-28T08:00' zijn geldige waarden.
uitgeschakeld (optioneel)
  • 0: Ingeschakeld
  • 1: Uitgeschakeld
MaxPermissions (optioneel) Integer
MaxRoles (optioneel) Integer
Type retour Id van de nieuwe gebruiker.

UserAddRole

Voegt een gebruikersrol toe.

Argumenten Typ

UserDeleteRole

Hiermee verwijdert u een gebruikersrol.

Argumenten Typ

Userupdate

Hiermee werkt u een gebruiker bij.

Argumenten Typ
UserID
beschrijving (optioneel)
Taal
  • 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. bijvoorbeeld '2004-12-11' en '2004-11-28T08:00' zijn geldige waarden.
firstName (optioneel)
middleName (optioneel)
lastName (optioneel)
maxPermissions (optioneel) Integer
maxRoles (optioneel) Integer

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 onder supervisie staande objecten van de gebruiker die zich heeft aangemeld.

Argumenten voor GetInfo

Naam Beschrijving
Toepassingen Retourneert een lijst met toepassingen.
kenmerktypen Retourneert een lijst met kenmerktypen.
orgtypes Retourneert een lijst met organisatie-eenheidstypen.
Organisatieeenheden 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
Machtigingen
machtigingsgebruikers
rollen Retourneert een lijst met rollen.
roletasks Retourneert een lijst met taken van de opgegeven rol.
Taken Retourneert alle taken die bekend zijn door 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

Naam Parameterwaarden Type retour
Organisatieeenheid OrgUnitID Organisatieeenheid
OrgUnitasiattributes OrgUnitID Verzameling
Organisatieeenheden filter (optioneel), proptypeid (optioneel)
Zoekt naar eenheden die de tekenreeks bevatten die wordt beschreven in filter in het proptype dat wordt beschreven in proptypeid. Als deze id wordt weggelaten, is het filter van toepassing 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

Informatie over rollen

Naam Parameterwaarden Type retour
rol roleID Voorwerp
rollen filter (optioneel) Verzameling
roleasiattributes roleID Verzameling
roleOrgUnits roleID Verzameling
roleparentroles roleID Verzameling
rolesubroles roleID Verzameling
rolsupervisors roleID Verzameling
rolsupervisorroles roleID Verzameling
roletasks roleID Verzameling
roleusers roleID Verzameling
rolsupervisorroles roleID Verzameling
proposedroleOrgUnits roleID Verzameling
proposedroleusers roleID Verzameling

Machtiging - taakgegevens

Naam Parameterwaarden Type retour
toestemming TaskID Toestemming
Machtigingen filter (optioneel) Verzameling
permissionasiattributes TaskID Verzameling
machtigingen TaskID Verzameling
permissionattributetypes - Verzameling
machtigingsparameters TaskID Verzameling
permissionroles TaskID Verzameling
machtigingssupervisors TaskID Verzameling
permissionsupervisorroles TaskID Verzameling
machtigingsgebruikers TaskID Verzameling
taak TaskID Opdracht
Taken filter (optioneel) Verzameling
taakbijlages TaskID Verzameling
taskparams TaskID Verzameling
taskroles TaskID Verzameling
taaksupervisors TaskID Verzameling
tasksupervisorroles TaskID Verzameling
taskusers TaskID Verzameling

Gebruikersgegevens

Naam Parameterwaarden Type retour
gebruiker UserID Gebruiker
gebruikers filter (optioneel), attributetypeid (optioneel)
Hiermee wordt gezocht naar gebruikers die het kenmerktype bevatten dat is opgegeven door attributetypeid, de tekenreeks die is opgegeven door het filter. Als deze id wordt weggelaten, is het filter van toepassing op de standaardalias van de gebruiker. Als er geen filter wordt opgegeven, worden alle zichtbare gebruikers geretourneerd. Voorbeeld:
  • 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
gebruikersapplications UserID Verzameling
Userpermissions 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.

Naam Type retour
Verzameling =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS>
Voorwerp =<ITEM type="…" description="..." />
Organisatieeenheid = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM>
Toestemming = <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>
Opdracht Machtiging weergeven
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>

Voorbeeldscript

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 gepresenteerd als een eenheid onder de eenheidsklanten. De aankoopmanager is net zo goed lid als supervisor van deze eenheid. Er wordt een rol gemaakt die de eigenaren het recht geeft om te kopen in naam van de nieuwe klant.

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

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

Maak een rol en taak om de aankoopbevoegdheden weer te geven. De werkelijke 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 die de informatie verzamelt, 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>

Alle aangepaste pagina's zouden moeten doen, is de juiste informatie aanvragen en een XML-document maken met de gevraagde informatie. In dit voorbeeld transformeert de pagina MySubmit de gegevens in het XML-document en wijst u deze toe aan de b1script. Parameters object en roept tot slot de functie b1script.ExecuteScript("MyScript") 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. Met deze vooraf gedefinieerde functie wordt dit object omgezet in een XML-document met BHOLD-opdrachten. Met dit mechanisme kan de gebruiker geen scripts verzenden naar het BHOLD-systeem dat functies bevat die de gebruiker niet mag uitvoeren, zoals setUser en functie die naar een ASI worden verzonden.

<?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